概述:本模塊是對HTTP/1.x協議實現的客戶端和服務端
1、
#本類是用來處理網絡“請求”數據的調度類
#想要學習實現一個http協議解析器本類是重點
#tornado中將作為server端收到的請求和client發出請求統一抽象為本類,已is_client來區分
#client模式由asyncclient創建
#server端由HTTP1ServerConnection作為構建類創建
class HTTP1Connection(httputil.HTTPConnection)
//核心方法
def _read_message(self, delegate)
#1. 通過_parse_headers解析start_line, headers(httputil.HTTPHeaders.parse方法)。本方法描述了http報文頭的規則。
#2. delegate.headers_received(start_line, headers)將header傳遞給Application,創建響應的handler,查看是否有必要解析body
#server模式傳遞順序:_ServerRequestAdapter.headers_received-->(Application)_RequestDispatcher.headers_received-->_RequestDispatcher.execute(參見tornado.web模塊篇)
#client模式待續
#3. _read_body將body傳遞給handler。
#傳遞順序:_read_body-->_read_fixed_body->_RequestDispatcher.data_received->handler.data_received
#等待handler _write_finished收尾