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.www58058.com/41818