<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fetch_normal(item, request):
 """Fetches the given request over HTTP."""

    try:
        conn = urllib2.urlopen(request, timeout=item.timeout_seconds)
    except urllib2.HTTPError, e:
        conn = e
    except (urllib2.URLError, ssl.SSLError), e:
        # TODO: Make this status more clear
        item.status_code = 400
        return item

    try:
        item.status_code = conn.getcode()
        item.content_type = conn.info().gettype()
        if item.result_path:
            with open(item.result_path, 'wb') as result_file:
                shutil.copyfileobj(conn, result_file)
        else:
            item.data = conn.read()
    except socket.timeout, e:
        # TODO: Make this status more clear
        item.status_code = 400
        return item
    finally:
        conn.close()

    return item