21. 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:
- 21.1.
webbrowser— Convenient Web-browser controller - 21.2.
cgi— Common Gateway Interface support - 21.3.
cgitb— Traceback manager for CGI scripts - 21.4.
wsgiref— WSGI Utilities and Reference Implementation- 21.4.1.
wsgiref.util– WSGI environment utilities - 21.4.2.
wsgiref.headers– WSGI response header tools - 21.4.3.
wsgiref.simple_server– a simple WSGI HTTP server - 21.4.4.
wsgiref.validate— WSGI conformance checker - 21.4.5.
wsgiref.handlers– server/gateway base classesCGIHandlerIISCGIHandlerBaseCGIHandlerSimpleHandlerBaseHandlerBaseHandler.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
read_environ()
- 21.4.6. Examples
- 21.4.1.
- 21.5.
urllib— URL handling modules - 21.6.
urllib.request— Extensible library for opening URLsurlopen()install_opener()build_opener()pathname2url()url2pathname()getproxies()RequestOpenerDirectorBaseHandlerHTTPDefaultErrorHandlerHTTPRedirectHandlerHTTPCookieProcessorProxyHandlerHTTPPasswordMgrHTTPPasswordMgrWithDefaultRealmHTTPPasswordMgrWithPriorAuthAbstractBasicAuthHandlerHTTPBasicAuthHandlerProxyBasicAuthHandlerAbstractDigestAuthHandlerHTTPDigestAuthHandlerProxyDigestAuthHandlerHTTPHandlerHTTPSHandlerFileHandlerDataHandlerFTPHandlerCacheFTPHandlerUnknownHandlerHTTPErrorProcessor- 21.6.1. Request Objects
Request.full_urlRequest.typeRequest.hostRequest.origin_req_hostRequest.selectorRequest.dataRequest.unverifiableRequest.methodRequest.get_method()Request.add_header()Request.add_unredirected_header()Request.has_header()Request.remove_header()Request.get_full_url()Request.set_proxy()Request.get_header()Request.header_items()
- 21.6.2. OpenerDirector Objects
- 21.6.3. BaseHandler Objects
- 21.6.4. HTTPRedirectHandler Objects
- 21.6.5. HTTPCookieProcessor Objects
- 21.6.6. ProxyHandler Objects
- 21.6.7. HTTPPasswordMgr Objects
- 21.6.8. HTTPPasswordMgrWithPriorAuth Objects
- 21.6.9. AbstractBasicAuthHandler Objects
- 21.6.10. HTTPBasicAuthHandler Objects
- 21.6.11. ProxyBasicAuthHandler Objects
- 21.6.12. AbstractDigestAuthHandler Objects
- 21.6.13. HTTPDigestAuthHandler Objects
- 21.6.14. ProxyDigestAuthHandler Objects
- 21.6.15. HTTPHandler Objects
- 21.6.16. HTTPSHandler Objects
- 21.6.17. FileHandler Objects
- 21.6.18. DataHandler Objects
- 21.6.19. FTPHandler Objects
- 21.6.20. CacheFTPHandler Objects
- 21.6.21. UnknownHandler Objects
- 21.6.22. HTTPErrorProcessor Objects
- 21.6.23. Examples
- 21.6.24. Legacy interface
- 21.6.25.
urllib.requestRestrictions
- 21.7.
urllib.response— Response classes used by urllib - 21.8.
urllib.parse— Parse URLs into components - 21.9.
urllib.error— Exception classes raised by urllib.request - 21.10.
urllib.robotparser— Parser for robots.txt - 21.11.
http— HTTP modules - 21.12.
http.client— HTTP protocol clientHTTPConnectionHTTPSConnectionHTTPResponseHTTPExceptionNotConnectedInvalidURLUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteReadImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReadyBadStatusLineLineTooLongRemoteDisconnectedHTTP_PORTHTTPS_PORTresponses- 21.12.1. HTTPConnection Objects
- 21.12.2. HTTPResponse Objects
- 21.12.3. Examples
- 21.12.4. HTTPMessage Objects
- 21.13.
ftplib— FTP protocol clientFTPFTP_TLSerror_replyerror_temperror_permerror_protoall_errors- 21.13.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.mlsd()FTP.nlst()FTP.dir()FTP.rename()FTP.delete()FTP.cwd()FTP.mkd()FTP.pwd()FTP.rmd()FTP.size()FTP.quit()FTP.close()
- 21.13.2. FTP_TLS Objects
- 21.14.
poplib— POP3 protocol client - 21.15.
imaplib— IMAP4 protocol clientIMAP4IMAP4_SSLIMAP4_streamInternaldate2tuple()Int2AP()ParseFlags()Time2Internaldate()- 21.15.1. IMAP4 Objects
IMAP4.append()IMAP4.authenticate()IMAP4.check()IMAP4.close()IMAP4.copy()IMAP4.create()IMAP4.delete()IMAP4.deleteacl()IMAP4.enable()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.starttls()IMAP4.status()IMAP4.store()IMAP4.subscribe()IMAP4.thread()IMAP4.uid()IMAP4.unsubscribe()IMAP4.xatom()IMAP4.PROTOCOL_VERSIONIMAP4.debugIMAP4.utf8_enabled
- 21.15.2. IMAP4 Example
- 21.16.
nntplib— NNTP protocol clientNNTPNNTP_SSLNNTPErrorNNTPReplyErrorNNTPTemporaryErrorNNTPPermanentErrorNNTPProtocolErrorNNTPDataError- 21.16.1. NNTP Objects
- 21.16.1.1. Attributes
- 21.16.1.2. Methods
NNTP.quit()NNTP.getwelcome()NNTP.getcapabilities()NNTP.login()NNTP.starttls()NNTP.newgroups()NNTP.newnews()NNTP.list()NNTP.descriptions()NNTP.description()NNTP.group()NNTP.over()NNTP.help()NNTP.stat()NNTP.next()NNTP.last()NNTP.article()NNTP.head()NNTP.body()NNTP.post()NNTP.ihave()NNTP.date()NNTP.slave()NNTP.set_debuglevel()NNTP.xhdr()NNTP.xover()NNTP.xpath()
- 21.16.2. Utility functions
- 21.17.
smtplib— SMTP protocol client - 21.18.
smtpd— SMTP Server - 21.19.
telnetlib— Telnet clientTelnet- 21.19.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()
- 21.19.2. Telnet Example
- 21.20.
uuid— UUID objects according to RFC 4122 - 21.21.
socketserver— A framework for network serversTCPServerUDPServerUnixStreamServerUnixDatagramServer- 21.21.1. Server Creation Notes
- 21.21.2. Server Objects
BaseServerBaseServer.fileno()BaseServer.handle_request()BaseServer.serve_forever()BaseServer.service_actions()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()
- 21.21.3. Request Handler Objects
- 21.21.4. Examples
- 21.22.
http.server— HTTP serversHTTPServerBaseHTTPRequestHandlerBaseHTTPRequestHandler.client_addressBaseHTTPRequestHandler.serverBaseHTTPRequestHandler.close_connectionBaseHTTPRequestHandler.requestlineBaseHTTPRequestHandler.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.handle_expect_100()BaseHTTPRequestHandler.send_error()BaseHTTPRequestHandler.send_response()BaseHTTPRequestHandler.send_header()BaseHTTPRequestHandler.send_response_only()BaseHTTPRequestHandler.end_headers()BaseHTTPRequestHandler.flush_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()
SimpleHTTPRequestHandlerCGIHTTPRequestHandler
- 21.23.
http.cookies— HTTP state management - 21.24.
http.cookiejar— Cookie handling for HTTP clientsLoadErrorCookieJarFileCookieJarCookiePolicyDefaultCookiePolicyCookie- 21.24.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
- 21.24.2. FileCookieJar subclasses and co-operation with web browsers
- 21.24.3. CookiePolicy Objects
- 21.24.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
- 21.24.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()
- 21.24.6. Examples
- 21.25.
xmlrpc— XMLRPC server and client modules - 21.26.
xmlrpc.client— XML-RPC client access - 21.27.
xmlrpc.server— Basic XML-RPC servers - 21.28.
ipaddress— IPv4/IPv6 manipulation library- 21.28.1. Convenience factory functions
- 21.28.2. IP Addresses
- 21.28.2.1. Address objects
IPv4AddressIPv4Address.versionIPv4Address.max_prefixlenIPv4Address.compressedIPv4Address.explodedIPv4Address.packedIPv4Address.reverse_pointerIPv4Address.is_multicastIPv4Address.is_privateIPv4Address.is_globalIPv4Address.is_unspecifiedIPv4Address.is_reservedIPv4Address.is_loopbackIPv4Address.is_link_local
IPv6AddressIPv6Address.compressedIPv6Address.explodedIPv6Address.packedIPv6Address.reverse_pointerIPv6Address.versionIPv6Address.max_prefixlenIPv6Address.is_multicastIPv6Address.is_privateIPv6Address.is_globalIPv6Address.is_unspecifiedIPv6Address.is_reservedIPv6Address.is_loopbackIPv6Address.is_link_localIPv6Address.is_site_localIPv6Address.ipv4_mappedIPv6Address.sixtofourIPv6Address.teredo
- 21.28.2.2. Conversion to Strings and Integers
- 21.28.2.3. Operators
- 21.28.2.1. Address objects
- 21.28.3. IP Network definitions
- 21.28.3.1. Prefix, net mask and host mask
- 21.28.3.2. Network objects
IPv4NetworkIPv4Network.versionIPv4Network.max_prefixlenIPv4Network.is_multicastIPv4Network.is_privateIPv4Network.is_unspecifiedIPv4Network.is_reservedIPv4Network.is_loopbackIPv4Network.is_link_localIPv4Network.network_addressIPv4Network.broadcast_addressIPv4Network.hostmaskIPv4Network.netmaskIPv4Network.with_prefixlenIPv4Network.compressedIPv4Network.explodedIPv4Network.with_netmaskIPv4Network.with_hostmaskIPv4Network.num_addressesIPv4Network.prefixlenIPv4Network.hosts()IPv4Network.overlaps()IPv4Network.address_exclude()IPv4Network.subnets()IPv4Network.supernet()IPv4Network.compare_networks()
IPv6NetworkIPv6Network.versionIPv6Network.max_prefixlenIPv6Network.is_multicastIPv6Network.is_privateIPv6Network.is_unspecifiedIPv6Network.is_reservedIPv6Network.is_loopbackIPv6Network.is_link_localIPv6Network.network_addressIPv6Network.broadcast_addressIPv6Network.hostmaskIPv6Network.netmaskIPv6Network.with_prefixlenIPv6Network.compressedIPv6Network.explodedIPv6Network.with_netmaskIPv6Network.with_hostmaskIPv6Network.num_addressesIPv6Network.prefixlenIPv6Network.hosts()IPv6Network.overlaps()IPv6Network.address_exclude()IPv6Network.subnets()IPv6Network.supernet()IPv6Network.compare_networks()IPv6Network.is_site_local
- 21.28.3.3. Operators
- 21.28.4. Interface objects
- 21.28.5. Other Module Level Functions
- 21.28.6. Custom Exceptions
