#
11. Internet Protocols and Support

The modules described in this chapter implement Internet protocols and support for related technology. They are all implemented in Python. Most of these modules require the presence of the system-dependent module `socket`, which is currently supported on most popular platforms. Here is an overview:

`webbrowser` |  | Easy-to-use controller for Web browsers.
`cgi` |  | Common Gateway Interface support, used to interpret forms in server-side scripts.
`cgitb` |  | Configurable traceback handler for CGI scripts.
`urllib` |  | Open an arbitrary network resource by URL (requires sockets).
`urllib2` |  | An extensible library for opening URLs using a variety of protocols
`httplib` |  | HTTP and HTTPS protocol client (requires sockets).
`ftplib` |  | FTP protocol client (requires sockets).
`gopherlib` |  | Gopher protocol client (requires sockets).
`poplib` |  | POP3 protocol client (requires sockets).
`imaplib` |  | IMAP4 protocol client (requires sockets).
`nntplib` |  | NNTP protocol client (requires sockets).
`smtplib` |  | SMTP protocol client (requires sockets).
`smtpd` |  | Implement a flexible SMTP server
`telnetlib` |  | Telnet client class.
`urlparse` |  | Parse URLs into components.
`SocketServer` |  | A framework for network servers.
`BaseHTTPServer` |  | Basic HTTP server (base class for `SimpleHTTPServer` and `CGIHTTPServer`).
`SimpleHTTPServer` |  | This module provides a basic request handler for HTTP servers.
`CGIHTTPServer` |  | This module provides a request handler for HTTP servers which can run CGI scripts.
`cookielib` |  | Cookie handling for HTTP clients
`Cookie` |  | Support for HTTP state management (cookies).
`xmlrpclib` |  | XML-RPC client access.
`SimpleXMLRPCServer` |  | Basic XML-RPC server implementation.
`DocXMLRPCServer` |  | Self-documenting XML-RPC server implementation.
`asyncore` |  | A base class for developing asynchronous socket handling services.
`asynchat` |  | Support for asynchronous command/response protocols.