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 controllerwsgiref— WSGI Utilities and Reference Implementationwsgiref.util– WSGI environment utilitieswsgiref.headers– WSGI response header toolswsgiref.simple_server– a simple WSGI HTTP serverwsgiref.validate— WSGI conformance checkerwsgiref.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()
wsgiref.types– WSGI types for static type checking- Examples
urllib— URL handling modulesurllib.request— Extensible library for opening URLsurlopen()install_opener()build_opener()pathname2url()url2pathname()getproxies()RequestOpenerDirectorBaseHandlerHTTPDefaultErrorHandlerHTTPRedirectHandlerHTTPCookieProcessorProxyHandlerHTTPPasswordMgrHTTPPasswordMgrWithDefaultRealmHTTPPasswordMgrWithPriorAuthAbstractBasicAuthHandlerHTTPBasicAuthHandlerProxyBasicAuthHandlerAbstractDigestAuthHandlerHTTPDigestAuthHandlerProxyDigestAuthHandlerHTTPHandlerHTTPSHandlerFileHandlerDataHandlerFTPHandlerCacheFTPHandlerUnknownHandlerHTTPErrorProcessor- 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()
- OpenerDirector Objects
- BaseHandler Objects
- HTTPRedirectHandler Objects
- HTTPCookieProcessor Objects
- ProxyHandler Objects
- HTTPPasswordMgr Objects
- HTTPPasswordMgrWithPriorAuth 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.requestRestrictions
urllib.response— Response classes used by urlliburllib.parse— Parse URLs into componentsurllib.error— Exception classes raised by urllib.requesturllib.robotparser— Parser for robots.txthttp— HTTP moduleshttp.client— HTTP protocol clientHTTPConnectionHTTPSConnectionHTTPResponseparse_headers()HTTPExceptionNotConnectedInvalidURLUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteReadImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReadyBadStatusLineLineTooLongRemoteDisconnectedHTTP_PORTHTTPS_PORTresponses- HTTPConnection Objects
HTTPConnection.request()HTTPConnection.getresponse()HTTPConnection.set_debuglevel()HTTPConnection.set_tunnel()HTTPConnection.get_proxy_response_headers()HTTPConnection.connect()HTTPConnection.close()HTTPConnection.blocksizeHTTPConnection.putrequest()HTTPConnection.putheader()HTTPConnection.endheaders()HTTPConnection.send()
- HTTPResponse Objects
HTTPResponse.read()HTTPResponse.readinto()HTTPResponse.getheader()HTTPResponse.getheaders()HTTPResponse.fileno()HTTPResponse.msgHTTPResponse.versionHTTPResponse.urlHTTPResponse.headersHTTPResponse.statusHTTPResponse.reasonHTTPResponse.debuglevelHTTPResponse.closedHTTPResponse.geturl()HTTPResponse.info()HTTPResponse.getcode()
- Examples
- HTTPMessage Objects
ftplib— FTP protocol clientFTPerror_replyerror_temperror_permerror_protoall_errors- 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()
- FTP_TLS Objects
poplib— POP3 protocol clientimaplib— IMAP4 protocol clientIMAP4IMAP4_SSLIMAP4_streamInternaldate2tuple()Int2AP()ParseFlags()Time2Internaldate()- 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.unselect()IMAP4.xatom()IMAP4.PROTOCOL_VERSIONIMAP4.debugIMAP4.utf8_enabled
- IMAP4 Example
smtplib— SMTP protocol clientuuid— UUID objects according to RFC 4122socketserver— A framework for network serversTCPServerUDPServerUnixStreamServerUnixDatagramServer- Server Creation Notes
- 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()
- Request Handler Objects
- Examples
http.server— HTTP serversHTTPServerThreadingHTTPServerBaseHTTPRequestHandlerBaseHTTPRequestHandler.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- Security Considerations
http.cookies— HTTP state managementhttp.cookiejar— Cookie handling for HTTP clientsLoadErrorCookieJarFileCookieJarCookiePolicyDefaultCookiePolicyCookie- 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
- FileCookieJar subclasses and co-operation with web browsers
- CookiePolicy Objects
- 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
- 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()
- Examples
xmlrpc— XMLRPC server and client modulesxmlrpc.client— XML-RPC client accessxmlrpc.server— Basic XML-RPC serversipaddress— IPv4/IPv6 manipulation library- Convenience factory functions
- IP Addresses
- 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_localIPv4Address.__format__()
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.scope_idIPv6Address.sixtofourIPv6Address.teredoIPv6Address.__format__()
- Conversion to Strings and Integers
- Operators
- Address objects
- IP Network definitions
- Prefix, net mask and host mask
- 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.subnet_of()IPv4Network.supernet_of()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.subnet_of()IPv6Network.supernet_of()IPv6Network.compare_networks()IPv6Network.is_site_local
- Operators
- Interface objects
- Other Module Level Functions
- Custom Exceptions