BaseHTTPServer 模块说明
class BaseHTTPServer.HTTPServer(server_address, RequestHandlerClass)
server_address : 是一个服务器 (ip, port)元组。
RequestHandlerClass : 负责处理实例参数的类。
class BaseHTTPServer.BaseHTTPRequestHandler(request, client_address, server)
这个类负责处理到达服务端的请求
就其本身而言,它不响应任何实际的HTTP请求;只能被其他类继承来处理每个不同的请求(GET or POST)
该处理程序将解析请求和标题, 然后根据请求类型的不同调用不同的方法进行处理
SPAM ---> do_SPAM()
所有相关信息都存储在处理程序的实例变量中,子类不需要重写或扩展__init__() 方法
BaseHTTPRequestHandler 拥有的实例变量:
client_address
客户端的(host, port)
server
服务端实例 --->
command
请求的类型 ---> POST
path
请求的路径
request_version
请求的版本 ---> 'HTTP/1.0'
headers
请求头信息 ---> Accept-Encoding: identity
Content-Length: 74
Host: 192.168.1.109:33433
Content-Type: application/x-www-form-urlencoded
Connection: close
User-Agent: Python-urllib/2.7
rfile
输入流,起始于输入数据的开始,输入数据是可选的。
wfile
输出流,用于写入返回给客户端的响应
BaseHTTPRequestHandler 拥有的类变量
protocol_version
响应中使用的HTTP 协议的版本。如果设置为'HTTP/1.1',服务器将允许HTTP 持久连接;
然而,此时你的服务器必须在所有给客户端的响应中包含一个准确的Content-Length 头
(使用send_header())。为了向后兼容,该设置默认为'HTTP/1.0'。
BaseHTTPRequestHandler 方法
handle()
调用一次handle_one_request()方法(如果启用持久连接,则调用多次)来处理进来的HTTP 请求。
你应该永远不会需要覆盖它;相反,应该实现合适的do_*() 方法。
handle_one_request()
该方法将解析并分发请求给合适的do_*() 方法。你应该永远不需要覆盖它。
原创文章,作者:心肝坏了,如若转载,请注明出处:http://www.178linux.com/41818