tornado.http1connection – HTTP/1.x client/server implementation

HTTP / 1.x的客户端和服务器实现.

版本4.0中的新功能.

class tornado.http1connection.HTTP1ConnectionParameters(no_keep_alive: bool = False, chunk_size: int = None, max_header_size: int = None, header_timeout: float = None, max_body_size: int = None, body_timeout: float = None, decompress: bool = False)[source]

HTTP1ConnectionHTTP1ServerConnection参数.

Parameters
  • no_keep_alivebool )–如果为true,则始终在一个请求后关闭连接.

  • chunk_sizeint )–一次读入内存的数据量

  • max_header_sizeint )– HTTP标头的最大数据量

  • header_timeoutfloat )–等待所有标题的时间(秒)

  • max_body_size (int) – maximum amount of data for body

  • body_timeoutfloat )–读取主体要等待多长时间(秒)

  • 解压缩bool )–如果为true,则解码传入的Content-Encoding: gzip

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

实现HTTP / 1.x协议.

对于客户端,该类可以单独使用,对于服务器,可以通过HTTP1ServerConnection进行使用.

Parameters
  • IOStream

  • is_clientbool )–客户端或服务器

  • 参数 –一个HTTP1ConnectionParameters实例或None

  • context –一个不透明的应用程序定义的对象,可以作为connection.context访问.

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

读取单个HTTP响应.

典型的客户端模式用法是使用write_headers编写请求, writefinish ,然后调用read_response .

Parameters

委托HTTPMessageDelegate

返回读取了完整响应后解析为bool的Future . 如果流仍处于打开状态,则结果为true.

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

设置将在关闭连接时运行的回调.

请注意,此回调与HTTPMessageDelegate.on_connection_close略有不同:在接收消息时关闭连接时,将调用HTTPMessageDelegate方法. 如果没有活动的委托,则使用此回调(例如,在服务器端,如果客户端在发送请求后但接收到所有响应之前关闭连接,则使用此回调.

detach() → tornado.iostream.IOStream[source]

控制基础流.

返回基础的IOStream对象,并停止所有进一步的HTTP处理. 只能在HTTPMessageDelegate.headers_received期间HTTPMessageDelegate.headers_received . 旨在实现通过HTTP握手建立隧道的协议(例如,websocket).

set_body_timeout(timeout: float) → None[source]

设置单个请求的主体超时.

覆盖HTTP1ConnectionParameters的值.

set_max_body_size(max_body_size: int) → None[source]

设置单个请求的正文大小限制.

覆盖HTTP1ConnectionParameters的值.

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

Implements HTTPConnection.write_headers.

write(chunk: bytes) → Future[None][source]

Implements HTTPConnection.write.

为了向后兼容,允许但不建议跳过write_headers ,而是使用预编码的标头块调用write() .

finish() → None[source]

Implements HTTPConnection.finish.

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

HTTP / 1.x服务器.

Parameters
start_serving(delegate: tornado.httputil.HTTPServerConnectionDelegate) → None[source]

开始在此连接上提供请求.

Parameters

委托HTTPServerConnectionDelegate