
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`` --- Convenient Web-browser controller
  * Browser Controller Objects
* ``cgi`` --- Common Gateway Interface support
  * Introduction
  * Using the cgi module
  * Higher Level Interface
  * Functions
  * Caring about security
  * Installing your CGI script on a Unix system
  * Testing your CGI script
  * Debugging CGI scripts
  * Common problems and solutions
* ``cgitb`` --- Traceback manager for CGI scripts
* ``wsgiref`` --- WSGI Utilities and Reference Implementation
  * ``wsgiref.util`` -- WSGI environment utilities
  * ``wsgiref.headers`` -- WSGI response header tools
  * ``wsgiref.simple_server`` -- a simple WSGI HTTP server
  * ``wsgiref.validate`` --- WSGI conformance checker
  * ``wsgiref.handlers`` -- server/gateway base classes
  * Examples
* ``urllib.request`` --- Extensible library for opening URLs
  * Request Objects
  * OpenerDirector Objects
  * BaseHandler Objects
  * HTTPRedirectHandler Objects
  * HTTPCookieProcessor Objects
  * ProxyHandler Objects
  * HTTPPasswordMgr Objects
  * AbstractBasicAuthHandler Objects
  * HTTPBasicAuthHandler Objects
  * ProxyBasicAuthHandler Objects
  * AbstractDigestAuthHandler Objects
  * HTTPDigestAuthHandler Objects
  * ProxyDigestAuthHandler Objects
  * HTTPHandler Objects
  * HTTPSHandler Objects
  * FileHandler Objects
  * FTPHandler Objects
  * CacheFTPHandler Objects
  * UnknownHandler Objects
  * HTTPErrorProcessor Objects
  * Examples
  * Legacy interface
  * ``urllib.request`` Restrictions
* ``urllib.response`` --- Response classes used by urllib
* ``urllib.parse`` --- Parse URLs into components
  * URL Parsing
  * Parsing ASCII Encoded Bytes
  * Structured Parse Results
  * URL Quoting
* ``urllib.error`` --- Exception classes raised by urllib.request
* ``urllib.robotparser`` ---  Parser for robots.txt
* ``http.client`` --- HTTP protocol client
  * HTTPConnection Objects
  * HTTPResponse Objects
  * Examples
  * HTTPMessage Objects
* ``ftplib`` --- FTP protocol client
  * FTP Objects
  * FTP_TLS Objects
* ``poplib`` --- POP3 protocol client
  * POP3 Objects
  * POP3 Example
* ``imaplib`` --- IMAP4 protocol client
  * IMAP4 Objects
  * IMAP4 Example
* ``nntplib`` --- NNTP protocol client
  * NNTP Objects
    * Attributes
    * Methods
  * Utility functions
* ``smtplib`` --- SMTP protocol client
  * SMTP Objects
  * SMTP Example
* ``smtpd`` --- SMTP Server
  * SMTPServer Objects
  * DebuggingServer Objects
  * PureProxy Objects
  * MailmanProxy Objects
  * SMTPChannel Objects
* ``telnetlib`` --- Telnet client
  * Telnet Objects
  * Telnet Example
* ``uuid`` --- UUID objects according to RFC 4122
  * Example
* ``socketserver`` --- A framework for network servers
  * Server Creation Notes
  * Server Objects
  * RequestHandler Objects
  * Examples
    * ``socketserver.TCPServer`` Example
    * ``socketserver.UDPServer`` Example
    * Asynchronous Mixins
* ``http.server`` --- HTTP servers
* ``http.cookies`` --- HTTP state management
  * Cookie Objects
  * Morsel Objects
  * Example
* ``http.cookiejar`` --- Cookie handling for HTTP clients
  * CookieJar and FileCookieJar Objects
  * FileCookieJar subclasses and co-operation with web browsers
  * CookiePolicy Objects
  * DefaultCookiePolicy Objects
  * Cookie Objects
  * Examples
* ``xmlrpc.client`` --- XML-RPC client access
  * ServerProxy Objects
  * DateTime Objects
  * Binary Objects
  * Fault Objects
  * ProtocolError Objects
  * MultiCall Objects
  * Convenience Functions
  * Example of Client Usage
  * Example of Client and Server Usage
* ``xmlrpc.server`` --- Basic XML-RPC servers
  * SimpleXMLRPCServer Objects
    * SimpleXMLRPCServer Example
  * CGIXMLRPCRequestHandler
  * Documenting XMLRPC server
  * DocXMLRPCServer Objects
  * DocCGIXMLRPCRequestHandler