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 服务端实例 ---> <BaseHTTPServer.HTTPServer instance at 0x7f8f9b229758> 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