
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" --- URL handling modules

* "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

  * DataHandler 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" --- HTTP modules

* "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" --- XMLRPC server and client modules

* "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

* "ipaddress" --- IPv4/IPv6 manipulation library

  * Convenience factory functions

  * IP Addresses

    * Address objects

    * Conversion to Strings and Integers

    * Operators

      * Comparison operators

      * Arithmetic operators

  * IP Network definitions

    * Prefix, net mask and host mask

    * Network objects

    * Operators

      * Logical operators

      * Iteration

      * Networks as containers of addresses

  * Interface objects

  * Other Module Level Functions

  * Custom Exceptions
