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)[source]¶
用于
HTTP1Connection和HTTP1ServerConnection的参数。
- class tornado.http1connection.HTTP1Connection(stream: IOStream, is_client: bool, params: Optional[HTTP1ConnectionParameters] = None, context: Optional[object] = None)[source]¶
实现 HTTP/1.x 协议。
此类可以单独用于客户端,也可以通过
HTTP1ServerConnection用于服务器。- 参数
stream – 一个
IOStreamis_client (bool) – 客户端或服务器
params – 一个
HTTP1ConnectionParameters实例或Nonecontext – 一个不透明的应用程序定义的对象,可以作为
connection.context访问。
- read_response(delegate: HTTPMessageDelegate) Awaitable[bool][source]¶
读取单个 HTTP 响应。
典型的客户端模式用法是使用
write_headers、write和finish写入请求,然后调用read_response。- 参数
delegate – 一个
HTTPMessageDelegate
返回一个
Future,它在完整响应读取后解析为布尔值。结果为真表示流仍然打开。
- set_close_callback(callback: Optional[Callable[[], None]]) None[source]¶
设置一个回调,将在连接关闭时运行。
请注意,此回调与
HTTPMessageDelegate.on_connection_close略有不同:当接收消息时连接关闭时,将调用HTTPMessageDelegate方法。此回调用于没有活动委托的情况(例如,在服务器端,如果客户端在发送请求后但在接收所有响应之前关闭连接,则会使用此回调)。
- detach() IOStream[source]¶
获取底层流的控制权。
返回底层
IOStream对象并停止所有后续 HTTP 处理。只能在HTTPMessageDelegate.headers_received期间调用。用于实现像 WebSockets 这样的通过 HTTP 握手隧道的协议。
- set_body_timeout(timeout: float) None[source]¶
设置单个请求的正文超时时间。
覆盖来自
HTTP1ConnectionParameters的值。
- set_max_body_size(max_body_size: int) None[source]¶
设置单个请求的正文大小限制。
覆盖来自
HTTP1ConnectionParameters的值。
- write_headers(start_line: Union[RequestStartLine, ResponseStartLine], headers: HTTPHeaders, chunk: Optional[bytes] = None) Future[None][source]¶
- class tornado.http1connection.HTTP1ServerConnection(stream: IOStream, params: Optional[HTTP1ConnectionParameters] = None, context: Optional[object] = None)[source]¶
HTTP/1.x 服务器。
- 参数
stream – 一个
IOStreamparams – a
HTTP1ConnectionParametersor Nonecontext – 一个不透明的应用程序定义的对象,可作为
connection.context访问
- start_serving(delegate: HTTPServerConnectionDelegate) None[source]¶
开始在此连接上提供服务请求。
- 参数
delegate – a
HTTPServerConnectionDelegate
- tornado.http1connection.is_transfer_encoding_chunked(headers: HTTPHeaders) bool[source]¶
如果 headers 指定了 Transfer-Encoding: chunked,则返回 True。
如果使用任何其他传输编码,则引发 httputil.HTTPInputError。