Tornado HTTP/1.x 客戶端/服務(wù)器實(shí)現(xiàn)

2022-03-09 18:09 更新

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)

HTTP1Connection 和 HTTP1ServerConnection 的參數(shù)。
參數(shù):

  • ?no_keep_alive ?(bool) -- 如果為True,則始終在一個(gè)請(qǐng)求后關(guān)閉連接。
  • ?chunk_size ?(int) – 一次讀入內(nèi)存的數(shù)據(jù)量
  • ?max_header_size ?(int) – HTTP 表頭的最大數(shù)據(jù)量
  • ?header_timeout ?(float) – 等待所有表頭的時(shí)間(秒)
  • ?max_body_size ?(int) – body 的最大數(shù)據(jù)量
  • ?body_timeout ?(float) – 讀取body時(shí)等待多長(zhǎng)時(shí)間(秒)
  • ?decompress ?(bool) -- 如果為True,解碼傳入的 Content-Encoding: gzip

class tornado.http1connection.HTTP1Connection(stream: tornado.iostream.IOStream, is_client: bool, params: Optional[tornado.http1connection.HTTP1ConnectionParameters] = None, context: Optional[object] = None)

實(shí)現(xiàn) HTTP/1.x 協(xié)議。
此類可以單獨(dú)用于客戶端,也可以通過(guò) HTTP1ServerConnection 用于服務(wù)器。
參數(shù):

?stream?-IOStream

?is_client ?(bool) – 客戶端或服務(wù)器

?params ?– HTTP1ConnectionParameters 實(shí)例或無(wú)

?context ?– 一個(gè)不透明的應(yīng)用程序定義的對(duì)象,可以作為 connection.context 訪問(wèn)。

read_response(delegate: tornado.httputil.HTTPMessageDelegate) → Awaitable[bool]

讀取單個(gè) HTTP 響應(yīng)。
典型的客戶端模式用法是使用 ?write_headers?、?write ?和 ?finish ?寫入請(qǐng)求,然后調(diào)用 ?read_response?。
參數(shù):?delegate ?– 一個(gè) ?HTTPMessageDelegate?

在讀取完整響應(yīng)后返回解析為布爾值的 ?Future?。 如果?stream?仍處于打開(kāi)狀態(tài),則結(jié)果為True。

set_close_callback(callback: Optional[Callable[[], None]]) → None

設(shè)置將在連接關(guān)閉時(shí)運(yùn)行的回調(diào)。

請(qǐng)注意,此回調(diào)與 ?HTTPMessageDelegate.on_connection_close? 略有不同:HTTPMessageDelegate 方法在接收消息關(guān)閉連接時(shí)調(diào)用。 當(dāng)沒(méi)有活動(dòng)委托時(shí)使用此回調(diào)(例如,在服務(wù)器端,如果客戶端在發(fā)送請(qǐng)求后但在收到所有響應(yīng)之前關(guān)閉連接,則使用此回調(diào)。

detach() → tornado.iostream.IOStream

控制底層流。

返回底層 IOStream 對(duì)象并停止所有進(jìn)一步的 HTTP 處理。 只能在 ?HTTPMessageDelegate.headers_received? 期間調(diào)用。 旨在實(shí)現(xiàn)通過(guò) HTTP 握手建立隧道的 websocket 等協(xié)議。

set_body_timeout(timeout: float) → None

為單個(gè)請(qǐng)求設(shè)置正文超時(shí)。

覆蓋來(lái)自 ?HTTP1ConnectionParameters的值。

set_max_body_size(max_body_size: int) → None

設(shè)置單個(gè)請(qǐng)求的正文大小限制。

覆蓋來(lái)自 ?HTTP1ConnectionParameters的值。

write_headers(start_line: Union[tornado.httputil.RequestStartLine, tornado.httputil.ResponseStartLine], headers: tornado.httputil.HTTPHeaders, chunk: Optional[bytes] = None) → Future[None]

實(shí)現(xiàn) ?HTTPConnection.write_headers?

write(chunk: bytes) → Future[None]

實(shí)現(xiàn) ?HTTPConnection.write?。

為了向后兼容,允許但不推薦跳過(guò) ?write_headers? 并使用預(yù)編碼的表頭塊調(diào)用 ?write()?。

finish() → None

實(shí)現(xiàn) ?HTTPConnection.finish?

class tornado.http1connection.HTTP1ServerConnection(stream: tornado.iostream.IOStream, params: Optional[tornado.http1connection.HTTP1ConnectionParameters] = None, context: Optional[object] = None)

HTTP/1.x 服務(wù)器。
參數(shù):

  • ?stream ?- 一個(gè) IOStream
  • ?params ?– HTTP1ConnectionParameters 或無(wú)
  • ?context ?– 一個(gè)不透明的應(yīng)用程序定義對(duì)象,可作為 connection.context 訪問(wèn)

coroutineclose() → None

關(guān)閉連接。

返回服務(wù)循環(huán)退出后解析的 ?future?。

start_serving(delegate: tornado.httputil.HTTPServerConnectionDelegate) → None

開(kāi)始在此連接上處理請(qǐng)求。

參數(shù):?delegate ?– 一個(gè) ?HTTPServerConnectionDelegate?


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)