Python 标准库 BaseHTTPServer 中文翻译

Python 标准库 BaseHTTPServer 中文翻译。

注意: BaseHTTPServer模块在Python3中已被合并到http.server,当转换你的资源为 Python3 时 2to3 工具将自己主动适配导入。

源代码:Lib/BaseHTTPServer.py

此模块定义了两个类用于实现HTTP服务器(Web servers)。通常,此模块不被直接使用。可是它用来作为基类创建功能性的Web servers。

查看 SimpleHTTPServerCGIHTTPServer 模块。

第一个类。HTTPServer,是一个 SocketServer.TCPServer 的子类。因此实现 SocketServer.BaseServer 的接口,它创建和监听 HTTP socket。分配请求和处理,创建和执行server的代码看起来是这种:

def run(server_class=BaseHTTPServer.HTTPServer,
        handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
    server_address = (‘‘, 8000)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

Class BaseHTTPServer.HTTPServer(server_address, RequestHandlerClass)

此类建立在 TCPServer 上通过储存服务器地址作为实例变量名为 server_nameserver_port

服务器可经由处理者进入。典型的是通过处理者的 server 实例变量。

class BaseHTTPServer.BaseHTTPRequestHandler(request, client_address, server)

这个类用来处理到达服务器的 HTTP 请求,通过它自身,它不能响应不论什么实际的 HTTP 请求。

它必须子类化来处理每个请求方法(比如:GET 或 POST)。

BaseHTTPRequestHandler 提供一个若干类和实例变量。和能够通过子类使用的方法。

处理者将解析请求和头信息,然后调用一个请求类型的特定方法。

方法名从请求构造。

样例中,对于请求方法 SPAMdo_SPAM() 方法将会无參数调用。

全部相关的信息被储存进处理者的实例变量。子类应该不须要覆写或者扩展 __init__ 方法。



BaseHTTPServerHandler 有下列实例变量:

client_address

包括一个关于client地址的结构为 (host, port) 的元祖。

server

包括server实例

command

包括命令(请求类型),样例:‘GET‘

path

包括请求路径

request_version

包括请求的HTTP版本号的字符串,样例:‘HTTP/1.0‘

headers

拥有一个通过 MessageClass 变量指定的类实例。

这个实例解析和管理 HTTP 请求的头信息。

rfile

包括一个输入流 stream,放置在输入数据选项的開始。

wfile

包括输出流用于回复一个响应response给clientclient。当写入这些stream时必须使用适当的HTTP协议。



BaseHTTPRequestHandler 有下列类变量:

server_vesion

指定服务器版本号。你或许会覆写它。he format is multiple whitespace-separated strings, where each string is of the form name[/version],样例:‘BaseHTTP/0.2‘

sys_version

包括Python版本号,通过 version_string 方法和 server_version 类变量使用。

样例:‘Python/1.4‘

error_message_format

指定一个格式化字符串用于创建一个错误响应给client。

它使用弧括号。键格式指定,所以格式操作数必须是一个字典。

code key 应该是一个整数。指定HTTP错误码值。message 应该是一个字符串包括一个错误信息的细节,explain 应该是一个错误码数字的解释。缺省 messageexplain 的值能在 responses 类变量中被找到。

error_content_type

指定错误响应的 Content-Type HTTP 头发送给client,缺省值是 ‘text/html‘

2.6新增,在曾经,内容类型总是 ‘text/html‘

protocol_version

这个指定的HTTP协议版本号用于响应,假设设置 ‘HTTP/1.1‘。服务器会执行HTTP硬连接;不管怎样,你的服务器必须包括一个精确的 Content-Length 头(使用 send_header())在全部它响应的client中。

为了向后兼容,默认设置为 ‘HTTP/1.0‘

MessageClass

指定一个 rfc822.Message-like 类来解析HTTP头。典型的,这不用覆写,缺省设置 mimetools.Message

responses

此变量包括一个错误码数字和一个包括短和长信息的2元祖的映射,样例: {code:(shrotmessage, longmessage)}

shortmessage 通经常使用于一个错误响应中的 message key,longmessage用来解释(查看 error_message_format 类变量)。



一个 BaseHTTPRequestHandler 实例有下面方法:

handle()

召唤一次 handle_one_request() (或者。假设硬连接是启用的,多次召唤)来响应来到的HTTP请求。你应该永远不须要覆写它;反而。实现适当的 do_* 方法。

handle_one_request()

这种方法将解析和分配请求给适配的 do_* 方法,你应该不须要覆写它。

send_error(code[, message])

发送和记录一个完整的错误回复给client。

code 指定HTTP错误码,message 是可选的, 很多其它特定文本。

一个完整的头设置被发送。随后使用 error_message_format 类变量排版文本。

send_response(code[,message])

发送一个响应头和记录接受的请求,HTTP响应行被发送,然后是 ServerData 头,这两个头的值分别从 version_stringdare_time_string 方法拾起。

send_header(keyword, value)

向输出流写入一个指定的HTTP头,ketword 应该指定头关键字,value 指定它的值。

end_headers()

发送一个空白行,表面HTTP头响应结束。

log_request([code[,size]])

记录和接受(成功的)请求,code 应该指定为 HTTP code 和响应通讯,假设响应大小是有效的。应该作为 size 參数。

log_error(…)

当一个请求不能被履行记录一个错误,缺省, 它把信息传给 log_message(),所以它获得相同的參数(格式的和附加的值)。

log_message(format, …)

记录一个随意的信息给 sys.tederr。这是典型的覆写来创建定制错误信息的原理。format參数是一个标准的 printf-style 格式化字符串,在其它參数 log_message() 被用作输入的格式。clientip地址和当前日期和时间作为每个信息记录(message logged)的前缀。

version_string()

返回服务器软件版本号。这是一个 server_versionsys_version 类变量的组合。

date_time_string([timestamp])

返回由 timestramp 给予的日期和时间(这些必须通过 time.time() 格式返回),通过一个信息头来格式化,假设 timestamp 被省略。它将使用当前的日期和时间。

结果看上去像 ‘Sun, 06 Nov 1994 08:49:37 GMT‘

2.5新增 timestamp 參数。

log_date_time_string()

返回当前日期和时间。logging格式。

address_string()

返回client地址。logging格式。在clientIP地址执行一个名字查找。


很多其它样例

创建一个不用一直循环执行的服务器,直到某些条件被满足。

def run_while_true(server_class=BaseHTTPServer.HTTPServer,
                   handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
    """
    This assumes that keep_running() is a function of no arguments which
    is tested initially and after each request.  If its return value
    is true, the server continues.
    """
    server_address = (‘‘, 8000)
    httpd = server_class(server_address, handler_class)
    while keep_running():
        httpd.handle_request()

附加:

模块: CGIHTTPServer

支持CGI脚本的扩展请求处理。

模块: SimpleHTTPServer

实际上根文档(document root)下限制响应到文件的基础请求处理。

时间: 2024-10-03 14:41:56

Python 标准库 BaseHTTPServer 中文翻译的相关文章

Python标准库1 介绍 Introduction 尝试翻译

The "Python library" contains several different kinds of components. Python标准库 包含几个不同的组件. It contains data types that would normally be considered part of the "core" of a language, such as numbers and lists. For these types, the Python

Python3.8.1标准库参考中文手册(The Python Library Reference) 高清pdf版【20MB】下载

reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库.它还描述了通常包含在 Python 发行版中的一些可选组件. Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的.这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案.其中有些模块经过专门设计,通

Python标准库、第三方库和外部工具汇总

导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连接.数清洗转换.数据计算和统计分析.图像和视频处理.音频处理.数据挖掘/机器学习/深度学习.数据可视化.交互学习和集成开发以及其他Python协同数据工作工具. 为了区分不同对象的来源和类型,本文将在描述中通过以下方法进行标识: Python内置函数:Python自带的内置函数.函数无需导入,直接使

Python 标准库、第三方库

Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写.网络抓取和解析.数据连接.数清洗转换.数据计算和统计分析.图像和视频处理.音频处理.数据挖掘/机器学习/深度学习.数据可视化.交互学习和集成开发以及其他Python协同数据工作工具. 为了区分不同对象的来源和类型,本节将在描述中通过以下方法进行标识: [Python内置函数]:Python自带的内置函数.函数无需导入,直接使用.

日月累积的整理!140种Python标准库、第三方库和外部工具都有了

Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 读者福利,想要了解python人工智能可直接点击链接即可领取相关学习福利包:石墨文档 是安全网站放心,继续访问就可以领取了哦 这些库可用于文件读写.网络抓取和解析.数据连接.数清洗转换.数据计算和统计分析.图像和视频处理.音频处理.数据挖掘/机器学习/深度学习.数据可视化.交互学习和集成开发以及其他Python协同数据工作工具. 为了区分不同对象的

Python标准库的学习准备

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python标准库是Python强大的动力所在,我们已经在前文中有所介绍.由于标准库所涉及的应用很广,所以需要学习一定的背景知识. 硬件原理 这一部份需要了解内存,CPU,磁盘存储以及IO的功能和性能,了解计算机工作的流程,了解指令的概念.这些内容基础而重要. Python标准库的一部份是为了提高系统的性能(比如mmap),所以有必要了解基本的计算机各个组成部分的性能. 操作系统

Python标准库——走马观花

Python标准库——走马观花 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的.它是Python的一个组成部分.这些标准库是Python为你准备好的利器,可以让编程事半功倍. 我将根据我个人的使用经验中,挑选出标准库三个方面的包(package)介绍: Python增强 系统互动 网络 第一类:Pyth

[学习笔记] Python标准库的学习准备 [转]

Python标准库是Python强大的动力所在,我们已经在前文中有所介绍.由于标准库所涉及的应用很广,所以需要学习一定的背景知识. 硬件原理 这一部份需要了解内存,CPU,磁盘存储以及IO的功能和性能,了解计算机工作的流程,了解指令的概念.这些内容基础而重要. Python标准库的一部份是为了提高系统的性能(比如mmap),所以有必要了解基本的计算机各个组成部分的性能. 操作系统 在了解操作系统时,下面是重点: 1) 操作系统的进程管理,比如什么是UID, PID, daemon 2) 进程之间

Python标准库(机器汉化)

Python标准库 虽然"Python语言参考"描述了Python语言的确切语法和语义,但该库参考手册描述了使用Python分发的标准库.它还介绍了Python发行版中通常包含的一些可选组件. Python的标准库非常广泛,提供了下面列出的长表所示的各种设施.该库包含内置模块(用C语言编写),提供对Python程序员无法访问的系统功能(如文件I / O)的访问,以及使用Python编写的模块,为出现的许多问题提供标准化的解决方案日常编程.其中一些模块是明确设计的,通过将特定平台抽象为平