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.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 classesCGIHandlerBaseCGIHandlerSimpleHandlerBaseHandlerBaseHandler.run()BaseHandler._write()BaseHandler._flush()BaseHandler.get_stdin()BaseHandler.get_stderr()BaseHandler.add_cgi_vars()BaseHandler.wsgi_multithreadBaseHandler.wsgi_multiprocessBaseHandler.wsgi_run_onceBaseHandler.os_environBaseHandler.server_softwareBaseHandler.get_scheme()BaseHandler.setup_environ()BaseHandler.log_exception()BaseHandler.traceback_limitBaseHandler.error_output()BaseHandler.error_statusBaseHandler.error_headersBaseHandler.error_bodyBaseHandler.wsgi_file_wrapperBaseHandler.sendfile()BaseHandler.origin_serverBaseHandler.http_version
- 20.4.6. Examples
- 20.4.1.
- 20.5.
urllib— Open arbitrary resources by URL - 20.6.
urllib2— extensible library for opening URLsurlopen()install_opener()build_opener()URLErrorHTTPErrorRequestOpenerDirectorBaseHandlerHTTPDefaultErrorHandlerHTTPRedirectHandlerHTTPCookieProcessorProxyHandlerHTTPPasswordMgrHTTPPasswordMgrWithDefaultRealmAbstractBasicAuthHandlerHTTPBasicAuthHandlerProxyBasicAuthHandlerAbstractDigestAuthHandlerHTTPDigestAuthHandlerProxyDigestAuthHandlerHTTPHandlerHTTPSHandlerFileHandlerFTPHandlerCacheFTPHandlerUnknownHandlerHTTPErrorProcessor- 20.6.1. Request Objects
Request.add_data()Request.get_method()Request.has_data()Request.get_data()Request.add_header()Request.add_unredirected_header()Request.has_header()Request.get_full_url()Request.get_type()Request.get_host()Request.get_selector()Request.get_header()Request.header_items()Request.set_proxy()Request.get_origin_req_host()Request.is_unverifiable()
- 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 clientHTTPConnectionHTTPSConnectionHTTPResponseHTTPMessageHTTPExceptionNotConnectedInvalidURLUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteReadImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReadyBadStatusLineHTTP_PORTHTTPS_PORTresponses- 20.7.1. HTTPConnection Objects
- 20.7.2. HTTPResponse Objects
- 20.7.3. Examples
- 20.8.
ftplib— FTP protocol clientFTPFTP_TLSerror_replyerror_temperror_permerror_protoall_errors- 20.8.1. FTP Objects
FTP.set_debuglevel()FTP.connect()FTP.getwelcome()FTP.login()FTP.abort()FTP.sendcmd()FTP.voidcmd()FTP.retrbinary()FTP.retrlines()FTP.set_pasv()FTP.storbinary()FTP.storlines()FTP.transfercmd()FTP.ntransfercmd()FTP.nlst()FTP.dir()FTP.rename()FTP.delete()FTP.cwd()FTP.mkd()FTP.pwd()FTP.rmd()FTP.size()FTP.quit()FTP.close()
- 20.8.2. FTP_TLS Objects
- 20.9.
poplib— POP3 protocol client - 20.10.
imaplib— IMAP4 protocol clientIMAP4IMAP4.errorIMAP4.abortIMAP4.readonlyIMAP4_SSLIMAP4_streamInternaldate2tuple()Int2AP()ParseFlags()Time2Internaldate()- 20.10.1. IMAP4 Objects
IMAP4.append()IMAP4.authenticate()IMAP4.check()IMAP4.close()IMAP4.copy()IMAP4.create()IMAP4.delete()IMAP4.deleteacl()IMAP4.expunge()IMAP4.fetch()IMAP4.getacl()IMAP4.getannotation()IMAP4.getquota()IMAP4.getquotaroot()IMAP4.list()IMAP4.login()IMAP4.login_cram_md5()IMAP4.logout()IMAP4.lsub()IMAP4.myrights()IMAP4.namespace()IMAP4.noop()IMAP4.open()IMAP4.partial()IMAP4.proxyauth()IMAP4.read()IMAP4.readline()IMAP4.recent()IMAP4.rename()IMAP4.response()IMAP4.search()IMAP4.select()IMAP4.send()IMAP4.setacl()IMAP4.setannotation()IMAP4.setquota()IMAP4.shutdown()IMAP4.socket()IMAP4.sort()IMAP4.status()IMAP4.store()IMAP4.subscribe()IMAP4.thread()IMAP4.uid()IMAP4.unsubscribe()IMAP4.xatom()IMAP4_SSL.ssl()IMAP4.PROTOCOL_VERSIONIMAP4.debug
- 20.10.2. IMAP4 Example
- 20.11.
nntplib— NNTP protocol clientNNTPNNTPErrorNNTPReplyErrorNNTPTemporaryErrorNNTPPermanentErrorNNTPProtocolErrorNNTPDataError- 20.11.1. NNTP Objects
NNTP.getwelcome()NNTP.set_debuglevel()NNTP.newgroups()NNTP.newnews()NNTP.list()NNTP.descriptions()NNTP.description()NNTP.group()NNTP.help()NNTP.stat()NNTP.next()NNTP.last()NNTP.head()NNTP.body()NNTP.article()NNTP.slave()NNTP.xhdr()NNTP.post()NNTP.ihave()NNTP.date()NNTP.xgtitle()NNTP.xover()NNTP.xpath()NNTP.quit()
- 20.12.
smtplib— SMTP protocol client - 20.13.
smtpd— SMTP Server - 20.14.
telnetlib— Telnet clientTelnet- 20.14.1. Telnet Objects
Telnet.read_until()Telnet.read_all()Telnet.read_some()Telnet.read_very_eager()Telnet.read_eager()Telnet.read_lazy()Telnet.read_very_lazy()Telnet.read_sb_data()Telnet.open()Telnet.msg()Telnet.set_debuglevel()Telnet.close()Telnet.get_socket()Telnet.fileno()Telnet.write()Telnet.interact()Telnet.mt_interact()Telnet.expect()Telnet.set_option_negotiation_callback()
- 20.14.2. Telnet Example
- 20.15.
uuid— UUID objects according to RFC 4122 - 20.16.
urlparse— Parse URLs into components - 20.17.
SocketServer— A framework for network serversTCPServerUDPServerUnixStreamServerUnixDatagramServer- 20.17.1. Server Creation Notes
- 20.17.2. Server Objects
BaseServerBaseServer.fileno()BaseServer.handle_request()BaseServer.serve_forever()BaseServer.shutdown()BaseServer.server_close()BaseServer.address_familyBaseServer.RequestHandlerClassBaseServer.server_addressBaseServer.socketBaseServer.allow_reuse_addressBaseServer.request_queue_sizeBaseServer.socket_typeBaseServer.timeoutBaseServer.finish_request()BaseServer.get_request()BaseServer.handle_error()BaseServer.handle_timeout()BaseServer.process_request()BaseServer.server_activate()BaseServer.server_bind()BaseServer.verify_request()
- 20.17.3. Request Handler Objects
- 20.17.4. Examples
- 20.18.
BaseHTTPServer— Basic HTTP serverHTTPServerBaseHTTPRequestHandlerBaseHTTPRequestHandler.client_addressBaseHTTPRequestHandler.serverBaseHTTPRequestHandler.commandBaseHTTPRequestHandler.pathBaseHTTPRequestHandler.request_versionBaseHTTPRequestHandler.headersBaseHTTPRequestHandler.rfileBaseHTTPRequestHandler.wfileBaseHTTPRequestHandler.server_versionBaseHTTPRequestHandler.sys_versionBaseHTTPRequestHandler.error_message_formatBaseHTTPRequestHandler.error_content_typeBaseHTTPRequestHandler.protocol_versionBaseHTTPRequestHandler.MessageClassBaseHTTPRequestHandler.responsesBaseHTTPRequestHandler.handle()BaseHTTPRequestHandler.handle_one_request()BaseHTTPRequestHandler.send_error()BaseHTTPRequestHandler.send_response()BaseHTTPRequestHandler.send_header()BaseHTTPRequestHandler.end_headers()BaseHTTPRequestHandler.log_request()BaseHTTPRequestHandler.log_error()BaseHTTPRequestHandler.log_message()BaseHTTPRequestHandler.version_string()BaseHTTPRequestHandler.date_time_string()BaseHTTPRequestHandler.log_date_time_string()BaseHTTPRequestHandler.address_string()
- 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 clientsLoadErrorCookieJarFileCookieJarCookiePolicyDefaultCookiePolicyCookie- 20.21.1. CookieJar and FileCookieJar Objects
CookieJar.add_cookie_header()CookieJar.extract_cookies()CookieJar.set_policy()CookieJar.make_cookies()CookieJar.set_cookie_if_ok()CookieJar.set_cookie()CookieJar.clear()CookieJar.clear_session_cookies()FileCookieJar.save()FileCookieJar.load()FileCookieJar.revert()FileCookieJar.filenameFileCookieJar.delayload
- 20.21.2. FileCookieJar subclasses and co-operation with web browsers
- 20.21.3. CookiePolicy Objects
- 20.21.4. DefaultCookiePolicy Objects
DefaultCookiePolicy.blocked_domains()DefaultCookiePolicy.set_blocked_domains()DefaultCookiePolicy.is_blocked()DefaultCookiePolicy.allowed_domains()DefaultCookiePolicy.set_allowed_domains()DefaultCookiePolicy.is_not_allowed()DefaultCookiePolicy.rfc2109_as_netscapeDefaultCookiePolicy.strict_domainDefaultCookiePolicy.strict_rfc2965_unverifiableDefaultCookiePolicy.strict_ns_unverifiableDefaultCookiePolicy.strict_ns_domainDefaultCookiePolicy.strict_ns_set_initial_dollarDefaultCookiePolicy.strict_ns_set_pathDefaultCookiePolicy.DomainStrictNoDotsDefaultCookiePolicy.DomainStrictNonDomainDefaultCookiePolicy.DomainRFC2965MatchDefaultCookiePolicy.DomainLiberalDefaultCookiePolicy.DomainStrict
- 20.21.5. Cookie Objects
Cookie.versionCookie.nameCookie.valueCookie.portCookie.pathCookie.secureCookie.expiresCookie.discardCookie.commentCookie.comment_urlCookie.rfc2109Cookie.port_specifiedCookie.domain_specifiedCookie.domain_initial_dotCookie.has_nonstandard_attr()Cookie.get_nonstandard_attr()Cookie.set_nonstandard_attr()Cookie.is_expired()
- 20.21.6. Examples
- 20.22.
Cookie— HTTP state management - 20.23.
xmlrpclib— XML-RPC client accessServerProxy- 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 serverSimpleXMLRPCServerCGIXMLRPCRequestHandlerSimpleXMLRPCRequestHandler- 20.24.1. SimpleXMLRPCServer Objects
SimpleXMLRPCServer.register_function()SimpleXMLRPCServer.register_instance()SimpleXMLRPCServer.register_introspection_functions()SimpleXMLRPCServer.register_multicall_functions()SimpleXMLRPCRequestHandler.rpc_pathsSimpleXMLRPCRequestHandler.encode_threshold- 20.24.1.1. SimpleXMLRPCServer Example
- 20.24.2. CGIXMLRPCRequestHandler
- 20.25.
DocXMLRPCServer— Self-documenting XML-RPC server
