Tornado HTTP/1.x 客户端/服务器实现
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 的参数。
参数:
-
no_keep_alive
(bool) -- 如果为True,则始终在一个请求后关闭连接。 -
chunk_size
(int) – 一次读入内存的数据量 -
max_header_size
(int) – HTTP 表头的最大数据量 -
header_timeout
(float) – 等待所有表头的时间(秒) -
max_body_size
(int) – body 的最大数据量 -
body_timeout
(float) – 读取body时等待多长时间(秒) -
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)
实现 HTTP/1.x 协议。
此类可以单独用于客户端,也可以通过 HTTP1ServerConnection 用于服务器。
参数:
stream
-IOStream
is_client
(bool) – 客户端或服务器
params
– HTTP1ConnectionParameters 实例或无
context
– 一个不透明的应用程序定义的对象,可以作为 connection.context 访问。
read_response(delegate: tornado.httputil.HTTPMessageDelegate) → Awaitable[bool]
读取单个 HTTP 响应。
典型的客户端模式用法是使用 write_headers
、write
和 finish
写入请求,然后调用 read_response
。
参数:delegate
– 一个 HTTPMessageDelegate
在读取完整响应后返回解析为布尔值的 Future
。 如果stream
仍处于打开状态,则结果为True。
set_close_callback(callback: Optional[Callable[[], None]]) → None
设置将在连接关闭时运行的回调。
请注意,此回调与 HTTPMessageDelegate.on_connection_close
略有不同:HTTPMessageDelegate 方法在接收消息关闭连接时调用。 当没有活动委托时使用此回调(例如,在服务器端,如果客户端在发送请求后但在收到所有响应之前关闭连接,则使用此回调。
detach() → tornado.iostream.IOStream
控制底层流。
返回底层 IOStream 对象并停止所有进一步的 HTTP 处理。 只能在 HTTPMessageDelegate.headers_received
期间调用。 旨在实现通过 HTTP 握手建立隧道的 websocket 等协议。
set_body_timeout(timeout: float) → None
为单个请求设置正文超时。
覆盖来自 HTTP1ConnectionParameters
的值。
set_max_body_size(max_body_size: int) → None
设置单个请求的正文大小限制。
覆盖来自 HTTP1ConnectionParameters
的值。
write_headers(start_line: Union[tornado.httputil.RequestStartLine, tornado.httputil.ResponseStartLine], headers: tornado.httputil.HTTPHeaders, chunk: Optional[bytes] = None) → Future[None]
实现 HTTPConnection.write_headers
write(chunk: bytes) → Future[None]
实现 HTTPConnection.write
。
为了向后兼容,允许但不推荐跳过 write_headers
并使用预编码的表头块调用 write()
。
finish() → None
实现 HTTPConnection.finish
class tornado.http1connection.HTTP1ServerConnection(stream: tornado.iostream.IOStream, params: Optional[tornado.http1connection.HTTP1ConnectionParameters] = None, context: Optional[object] = None)
HTTP/1.x 服务器。
参数:
-
stream
- 一个 IOStream -
params
– HTTP1ConnectionParameters 或无 -
context
– 一个不透明的应用程序定义对象,可作为 connection.context 访问
coroutineclose() → None
关闭连接。
返回服务循环退出后解析的 future
。
start_serving(delegate: tornado.httputil.HTTPServerConnectionDelegate) → None
开始在此连接上处理请求。
参数:delegate
– 一个 HTTPServerConnectionDelegate