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)[源代码]

参数用于 HTTP1ConnectionHTTP1ServerConnection .

参数
  • no_keep_alive (bool) -- 如果为真,请在一次请求后始终关闭连接。

  • chunk_size (int) -- 一次读取多少数据到内存中

  • max_header_size (int) -- HTTP头的最大数据量

  • header_timeout (float) -- 等待所有邮件头的时间(秒)

  • max_body_size (int) -- 正文的最大数据量

  • body_timeout (float) -- 阅读正文时等待多长时间(秒)

  • decompress (bool) -- 如果为真,则解码传入 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 实例或 None

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

read_response(delegate: tornado.httputil.HTTPMessageDelegate) Awaitable[bool][源代码]

读取单个HTTP响应。

典型的客户机模式用法是使用 write_headerswritefinish 然后调用 read_response .

参数

delegate -- 一 HTTPMessageDelegate

返回A Future 在读取完整的响应之后解析为bool。如果流仍然打开,则结果为真。

set_close_callback(callback: Optional[Callable[[], None]]) None[源代码]

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

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

detach() tornado.iostream.IOStream[源代码]

控制底层流。

返回基础 IOStream 对象并停止所有进一步的HTTP处理。只能在 HTTPMessageDelegate.headers_received . 用于实现类似WebSockets的协议,通过HTTP握手进行隧道传输。

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服务器。

参数
coroutine close() None[源代码]

关闭连接。

返回A Future 在服务循环退出后解决。

start_serving(delegate: tornado.httputil.HTTPServerConnectionDelegate) None[源代码]

开始在此连接上服务请求。

参数

delegate -- 一 HTTPServerConnectionDelegate