第五部分 服務器端框架
第16章 SocketServer
1. 基礎
basichttp.py使用BaseHTTPServer 庫的 HTTPServer和BaseHTTPRequestHandler建立了一個簡單的服務器,向客戶端返回相同的文檔。響應內容是通過RequestHandler的self.wfile.write(content)實現的。
basichttpdoc.py根據RequestHandler的path屬性返回不同的文檔。
basichttpdocthread.py通過混入SocketServer 庫的 ThreadingMixIn使得服務器支持了多線程,從而可以同時響應多個客戶端。
simplehttp.py利用SimpleHTTPServer 庫的 SimpleHTTPRequestHandler來建立服務器。服務器會提供當前目錄下的所有文件,並且支持index.html。
simplehttpthread.py同樣通過混入支持了多線程。
cgifork.py使用CGIHTTPServer 庫的 CGIHTTPRequestHandler建立可以調用CGI程序的服務器。
2. 高級
socketserver.py使用 SocketServer 庫的 ThreadingMixIn, TCPServer, StreamRequestHandler來建立非HTTP協議的服務器。通過對StreamRequestHandler的rfile讀取和wfile寫來實現與客戶端的通信。當客戶端連接的時候,StreamRequestHandler子類實例的handle方法將會被調用。
ipv6.py通過給服務器(TCPServer)設置address_family = socket.AF_INET6來使服務器兼容IPv6。
第17章 SimpleXMLRPCServer
simple.py建立一個XML-RPC服務器並且使用register_instance註冊一個類的方法。建立服務器的過程和普通的Http Server基本一樣。
xmlrpci.py能夠返回方法的介紹。testclient.py可以交互地訪問服務器。
func.py使用register_function直接註冊一個方法。
stat.py使用了類的繼承,主要是爲了說明繼承而來的方法一樣可以採用XML-RPC調用。
doc.py使用DocXMLRPCServer代替SimpleXMLRPCServer建立服務器,使得可以使用瀏覽器訪問服務器,獲得方法的描述。
cgi.py使用CGIXMLRPCRequestHandler將CGI轉化爲XML-RPC服務。
第18章 CGI
越過。