# 11.3 `httplib` -- HTTP protocol client

This module defines a class which implements the client side of the HTTP protocol. It is normally not used directly -- the module `urllib` uses it to handle URLs that use HTTP.

The module defines one class, `HTTP`:

`HTTP` ([host[, port]])
  An `HTTP` instance represents one transaction with an HTTP server. It should be instantiated passing it a host and optional port number. If no port number is passed, the port is extracted from the host string if it has the form `host:port`, else the default HTTP port (80) is used. If no host is passed, no connection is made, and the `connect()` method should be used to connect to a server. For example, the following calls all create instances that connect to the server at the same host and port:

        >>> h1 = httplib.HTTP('www.cwi.nl')
        >>> h2 = httplib.HTTP('www.cwi.nl:80')
        >>> h3 = httplib.HTTP('www.cwi.nl', 80)

  Once an `HTTP` instance has been connected to an HTTP server, it should be used as follows:

  1.
    Make exactly one call to the `putrequest()` method.

  2.
    Make zero or more calls to the `putheader()` method.

  3.
    Call the `endheaders()` method (this can be omitted if step 4 makes no calls).

  4.
    Optional calls to the `send()` method.

  5.
    Call the `getreply()` method.

  6.
    Call the `getfile()` method and read the data off the file object that it returns.

- 11.3.1 HTTP Objects
- 11.3.2 Example