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 – 一个
IOStream
is_client (bool) – 客户端或服务器
params – 一个
HTTP1ConnectionParameters
实例或None
context – 一个不透明的应用程序定义的对象,可以作为
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 – 一个
IOStream
params – a
HTTP1ConnectionParameters
or 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。