tornado.http1connection
– HTTP/1.x 客戶端/伺服器實作¶
HTTP/1.x 的客戶端和伺服器實作。
4.0 版新增功能。
- class tornado.http1connection.HTTP1ConnectionParameters(no_keep_alive: bool = False, chunk_size: Optional[int] = None, max_header_size: Optional[int] = None, header_timeout: Optional[float] = None, max_body_size: Optional[int] = None, body_timeout: Optional[float] = None, decompress: bool = False)[原始碼]¶
- class tornado.http1connection.HTTP1Connection(stream: IOStream, is_client: bool, params: Optional[HTTP1ConnectionParameters] = None, context: Optional[object] = None)[原始碼]¶
實作 HTTP/1.x 協定。
此類別可以單獨用於客戶端,或透過
HTTP1ServerConnection
用於伺服器。- 參數
stream – 一個
IOStream
is_client (bool) – 客戶端或伺服器
params – 一個
HTTP1ConnectionParameters
執行個體或None
context – 一個不透明的應用程式定義物件,可以作為
connection.context
存取。
- read_response(delegate: HTTPMessageDelegate) Awaitable[bool] [原始碼]¶
讀取單個 HTTP 回應。
典型的客戶端模式用法是使用
write_headers
、write
和finish
寫入請求,然後呼叫read_response
。- 參數
delegate – 一個
HTTPMessageDelegate
返回一個
Future
,在完整讀取回應後解析為布林值。如果串流仍然開啟,結果為 true。
- set_close_callback(callback: Optional[Callable[[], None]]) None [原始碼]¶
設定在連線關閉時會執行的回呼函數。
請注意,此回呼函數與
HTTPMessageDelegate.on_connection_close
略有不同:當接收訊息時連線關閉時,會呼叫HTTPMessageDelegate
方法。當沒有作用中的委派時,會使用此回呼函數 (例如,在伺服器端,如果客戶端在傳送請求後但在接收所有回應之前關閉連線,則會使用此回呼函數)。
- detach() IOStream [原始碼]¶
取得底層串流的控制權。
傳回底層的
IOStream
物件,並停止所有進一步的 HTTP 處理。只能在HTTPMessageDelegate.headers_received
期間呼叫。旨在實作諸如透過 HTTP 交握進行通道傳輸的 WebSocket 等協定。
- set_body_timeout(timeout: float) None [原始碼]¶
設定單一請求的 body 超時時間。
覆寫
HTTP1ConnectionParameters
中的值。
- set_max_body_size(max_body_size: int) None [原始碼]¶
設定單一請求的 body 大小限制。
覆寫
HTTP1ConnectionParameters
中的值。
- write_headers(start_line: Union[RequestStartLine, ResponseStartLine], headers: HTTPHeaders, chunk: Optional[bytes] = None) Future[None] [原始碼]¶
- class tornado.http1connection.HTTP1ServerConnection(stream: IOStream, params: Optional[HTTP1ConnectionParameters] = None, context: Optional[object] = None)[原始碼]¶
一個 HTTP/1.x 伺服器。
- 參數
stream – 一個
IOStream
params – 一個
HTTP1ConnectionParameters
或 Nonecontext – 一個不透明的應用程式定義物件,可作為
connection.context
存取
- start_serving(delegate: HTTPServerConnectionDelegate) None [原始碼]¶
開始在此連線上服務請求。
- 參數
delegate – 一個
HTTPServerConnectionDelegate
- tornado.http1connection.is_transfer_encoding_chunked(headers: HTTPHeaders) bool [原始碼]¶
如果標頭指定了 Transfer-Encoding: chunked,則回傳 true。
如果使用任何其他傳輸編碼,則引發 httputil.HTTPInputError。