20. 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:

* 20.1. "webbrowser" — Convenient Web-browser controller

  * 20.1.1. Browser Controller Objects

* 20.2. "cgi" — Common Gateway Interface support

  * 20.2.1. Introduction

  * 20.2.2. Using the cgi module

  * 20.2.3. Higher Level Interface

  * 20.2.4. Old classes

  * 20.2.5. Functions

  * 20.2.6. Caring about security

  * 20.2.7. Installing your CGI script on a Unix system

  * 20.2.8. Testing your CGI script

  * 20.2.9. Debugging CGI scripts

  * 20.2.10. Common problems and solutions

* 20.3. "cgitb" — Traceback manager for CGI scripts

* 20.4. "wsgiref" — WSGI Utilities and Reference Implementation

  * 20.4.1. "wsgiref.util" – WSGI environment utilities

  * 20.4.2. "wsgiref.headers" – WSGI response header tools

  * 20.4.3. "wsgiref.simple_server" – a simple WSGI HTTP server

  * 20.4.4. "wsgiref.validate" — WSGI conformance checker

  * 20.4.5. "wsgiref.handlers" – server/gateway base classes

  * 20.4.6. Examples

* 20.5. "urllib" — Open arbitrary resources by URL

  * 20.5.1. High-level interface

  * 20.5.2. Utility functions

  * 20.5.3. URL Opener objects

  * 20.5.4. "urllib" Restrictions

  * 20.5.5. Examples

* 20.6. "urllib2" — extensible library for opening URLs

  * 20.6.1. Request Objects

  * 20.6.2. OpenerDirector Objects

  * 20.6.3. BaseHandler Objects

  * 20.6.4. HTTPRedirectHandler Objects

  * 20.6.5. HTTPCookieProcessor Objects

  * 20.6.6. ProxyHandler Objects

  * 20.6.7. HTTPPasswordMgr Objects

  * 20.6.8. AbstractBasicAuthHandler Objects

  * 20.6.9. HTTPBasicAuthHandler Objects

  * 20.6.10. ProxyBasicAuthHandler Objects

  * 20.6.11. AbstractDigestAuthHandler Objects

  * 20.6.12. HTTPDigestAuthHandler Objects

  * 20.6.13. ProxyDigestAuthHandler Objects

  * 20.6.14. HTTPHandler Objects

  * 20.6.15. HTTPSHandler Objects

  * 20.6.16. FileHandler Objects

  * 20.6.17. FTPHandler Objects

  * 20.6.18. CacheFTPHandler Objects

  * 20.6.19. UnknownHandler Objects

  * 20.6.20. HTTPErrorProcessor Objects

  * 20.6.21. Examples

* 20.7. "httplib" — HTTP protocol client

  * 20.7.1. HTTPConnection Objects

  * 20.7.2. HTTPResponse Objects

  * 20.7.3. Examples

* 20.8. "ftplib" — FTP protocol client

  * 20.8.1. FTP Objects

  * 20.8.2. FTP_TLS Objects

* 20.9. "poplib" — POP3 protocol client

  * 20.9.1. POP3 Objects

  * 20.9.2. POP3 Example

* 20.10. "imaplib" — IMAP4 protocol client

  * 20.10.1. IMAP4 Objects

  * 20.10.2. IMAP4 Example

* 20.11. "nntplib" — NNTP protocol client

  * 20.11.1. NNTP Objects

* 20.12. "smtplib" — SMTP protocol client

  * 20.12.1. SMTP Objects

  * 20.12.2. SMTP Example

* 20.13. "smtpd" — SMTP Server

  * 20.13.1. SMTPServer Objects

  * 20.13.2. DebuggingServer Objects

  * 20.13.3. PureProxy Objects

  * 20.13.4. MailmanProxy Objects

* 20.14. "telnetlib" — Telnet client

  * 20.14.1. Telnet Objects

  * 20.14.2. Telnet Example

* 20.15. "uuid" — UUID objects according to RFC 4122

  * 20.15.1. Example

* 20.16. "urlparse" — Parse URLs into components

  * 20.16.1. Results of "urlparse()" and "urlsplit()"

* 20.17. "SocketServer" — A framework for network servers

  * 20.17.1. Server Creation Notes

  * 20.17.2. Server Objects

  * 20.17.3. Request Handler Objects

  * 20.17.4. Examples

    * 20.17.4.1. "SocketServer.TCPServer" Example

    * 20.17.4.2. "SocketServer.UDPServer" Example

    * 20.17.4.3. Asynchronous Mixins

* 20.18. "BaseHTTPServer" — Basic HTTP server

  * 20.18.1. More examples

* 20.19. "SimpleHTTPServer" — Simple HTTP request handler

* 20.20. "CGIHTTPServer" — CGI-capable HTTP request handler

* 20.21. "cookielib" — Cookie handling for HTTP clients

  * 20.21.1. CookieJar and FileCookieJar Objects

  * 20.21.2. FileCookieJar subclasses and co-operation with web
    browsers

  * 20.21.3. CookiePolicy Objects

  * 20.21.4. DefaultCookiePolicy Objects

  * 20.21.5. Cookie Objects

  * 20.21.6. Examples

* 20.22. "Cookie" — HTTP state management

  * 20.22.1. Cookie Objects

  * 20.22.2. Morsel Objects

  * 20.22.3. Example

* 20.23. "xmlrpclib" — XML-RPC client access

  * 20.23.1. ServerProxy Objects

  * 20.23.2. Boolean Objects

  * 20.23.3. DateTime Objects

  * 20.23.4. Binary Objects

  * 20.23.5. Fault Objects

  * 20.23.6. ProtocolError Objects

  * 20.23.7. MultiCall Objects

  * 20.23.8. Convenience Functions

  * 20.23.9. Example of Client Usage

  * 20.23.10. Example of Client and Server Usage

* 20.24. "SimpleXMLRPCServer" — Basic XML-RPC server

  * 20.24.1. SimpleXMLRPCServer Objects

    * 20.24.1.1. SimpleXMLRPCServer Example

  * 20.24.2. CGIXMLRPCRequestHandler

* 20.25. "DocXMLRPCServer" — Self-documenting XML-RPC server

  * 20.25.1. DocXMLRPCServer Objects

  * 20.25.2. DocCGIXMLRPCRequestHandler
