互联网协议和支持¶
本章介绍的模块实现了互联网协议以及相关技术支持。 它们都是用 Python 实现的。 这些模块大多需要依赖于系统的模块 socket 作为前提,该模块在大多数流行系统平台上都受到支持。 下面是一份概览:
webbrowser--- 方便的 Web 浏览器控制工具wsgiref--- WSGI 工具和参考实现wsgiref.util-- WSGI 环境工具wsgiref.headers-- WSGI 响应标头工具wsgiref.simple_server-- 一个简单的 WSGI HTTP 服务器wsgiref.validate--- WSGI 一致性检查器wsgiref.handlers-- 服务器/网关基类CGIHandlerIISCGIHandlerBaseCGIHandlerSimpleHandlerBaseHandlerBaseHandler.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 类型- 例子
urllib--- URL 处理模块urllib.request--- 用于打开 URL 的可扩展库urlopen()install_opener()build_opener()pathname2url()url2pathname()getproxies()RequestOpenerDirectorBaseHandlerHTTPDefaultErrorHandlerHTTPRedirectHandlerHTTPCookieProcessorProxyHandlerHTTPPasswordMgrHTTPPasswordMgrWithDefaultRealmHTTPPasswordMgrWithPriorAuthAbstractBasicAuthHandlerHTTPBasicAuthHandlerProxyBasicAuthHandlerAbstractDigestAuthHandlerHTTPDigestAuthHandlerProxyDigestAuthHandlerHTTPHandlerHTTPSHandlerFileHandlerDataHandlerFTPHandlerCacheFTPHandlerUnknownHandlerHTTPErrorProcessor- Request 对象
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 对象
- BaseHandler 对象
- HTTPRedirectHandler 对象
- HTTPCookieProcessor 对象
- ProxyHandler 对象
- HTTPPasswordMgr 对象
- HTTPPasswordMgrWithPriorAuth 对象
- AbstractBasicAuthHandler 对象
- HTTPBasicAuthHandler 对象
- ProxyBasicAuthHandler 对象
- AbstractDigestAuthHandler 对象
- HTTPDigestAuthHandler 对象
- ProxyDigestAuthHandler 对象
- HTTPHandler 对象
- HTTPSHandler 对象
- FileHandler 对象
- DataHandler 对象
- FTPHandler 对象
- CacheFTPHandler 对象
- UnknownHandler 对象
- HTTPErrorProcessor 对象
- 例子
- 已停用的接口
urllib.request的限制
urllib.response--- urllib 使用的 Response 类urllib.parse用于解析 URLurllib.error--- urllib.request 引发的异常类urllib.robotparser--- robots.txt 语法分析程序http--- HTTP 模块http.client--- HTTP 协议客户端HTTPConnectionHTTPSConnectionHTTPResponseparse_headers()HTTPExceptionNotConnectedInvalidURLUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteReadImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReadyBadStatusLineLineTooLongRemoteDisconnectedHTTP_PORTHTTPS_PORTresponses- HTTPConnection 对象
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 对象
HTTPResponse.read()HTTPResponse.readinto()HTTPResponse.getheader()HTTPResponse.getheaders()HTTPResponse.fileno()HTTPResponse.msgHTTPResponse.versionHTTPResponse.urlHTTPResponse.headersHTTPResponse.statusHTTPResponse.reasonHTTPResponse.debuglevelHTTPResponse.closedHTTPResponse.geturl()HTTPResponse.info()HTTPResponse.getcode()
- 例子
- HTTPMessage 对象
ftplib--- FTP 协议客户端FTPerror_replyerror_temperror_permerror_protoall_errors- FTP 对象
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 对象
poplib--- POP3 协议客户端imaplib--- IMAP4 协议客户端IMAP4IMAP4_SSLIMAP4_streamInternaldate2tuple()Int2AP()ParseFlags()Time2Internaldate()- IMAP4 对象
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 示例
smtplib--- SMTP 协议客户端uuid--- RFC 4122 定义的UUID对象socketserver--- 用于网络服务器的框架TCPServerUDPServerUnixStreamServerUnixDatagramServer- 服务器创建的说明
- Server 对象
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()
- 请求处理句柄对象
- 例子
http.server--- HTTP 服务器HTTPServerThreadingHTTPServerBaseHTTPRequestHandlerBaseHTTPRequestHandler.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- 安全考量
http.cookies--- HTTP状态管理http.cookiejar—— HTTP 客户端的 Cookie 处理LoadErrorCookieJarFileCookieJarCookiePolicyDefaultCookiePolicyCookie- CookieJar 和 FileCookieJar 对象
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 的子类及其与 Web 浏览器的协同
- CookiePolicy 对象
- DefaultCookiePolicy 对象
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 对象
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()
- 例子
xmlrpc--- XMLRPC 服务端与客户端模块xmlrpc.client--- XML-RPC 客户端访问xmlrpc.server--- 基本 XML-RPC 服务器ipaddress--- IPv4/IPv6 操作库- 方便的工厂函数
- IP 地址
- 地址对象
IPv4AddressIPv4Address.versionIPv4Address.max_prefixlenIPv4Address.compressedIPv4Address.explodedIPv4Address.packedIPv4Address.reverse_pointerIPv4Address.is_multicastIPv4Address.is_privateIPv4Address.is_globalIPv4Address.is_unspecifiedIPv4Address.is_reservedIPv4Address.is_loopbackIPv4Address.is_link_localIPv4Address.ipv6_mappedIPv4Address.__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__()
- 转换字符串和整数
- 运算符
- 地址对象
- IP网络的定义
- 前缀、网络掩码和主机掩码
- 网络对象
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
- 运算符
- 接口对象
- 其他模块级别函数
- 自定义异常