Python标准库源码分析:BaseHTTPServer.py
从SocketServer.py分析中可以知道其设计思想是将socket编程的监听循环和客户端处理划分成Server类和RequestHandler类,而BaseHTTPServer是基于SocketServer基础之上的,因此可以知道BaseHTTPServer就是分别扩展Server类和RequestHandler类。BaseHTTPServer实现了一个简单的HTTP Server,可以知道主要工作应该是扩展RequestHandler的功能,处理客户端的HTTP请求,具体包括HTTP协议解析,给客户端返回HTTP响应,日志记录等功能。
1.HTTPServer
该类只是简单包装了SocketServer中的TCPServer[1]类
2.BaseHTTPRequestHandler
File "/usr/local/lib/python2.6/threading.py", line 504, in __bootstrap
self.__bootstrap_inner()
File "/usr/local/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/local/lib/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/lib/python2.6/SocketServer.py", line 560, in process_request_thread
self.finish_request(request, client_address)
File "/usr/local/lib/python2.6/SocketServer.py", line 322, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/lib/python2.6/SocketServer.py", line 617, in __init__
self.handle()
File "/usr/local/lib/python2.6/BaseHTTPServer.py", line 329, in handle
self.handle_one_request()
File "/usr/local/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
method()
类定义