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) – trueの場合、常にリクエスト1回ごとに接続を閉じます。

  • chunk_size (int) – 一度にメモリに読み込むデータ量

  • max_header_size (int) – HTTPヘッダーの最大データ量

  • header_timeout (float) – すべてのヘッダーを待つ時間 (秒)

  • max_body_size (int) – 本文の最大データ量

  • body_timeout (float) – 本文の読み込み中の待機時間 (秒)

  • decompress (bool) – trueの場合、受信した Content-Encoding: gzip をデコードします

class tornado.http1connection.HTTP1Connection(stream: IOStream, is_client: bool, params: Optional[HTTP1ConnectionParameters] = None, context: Optional[object] = None)[ソース]

HTTP/1.x プロトコルを実装します。

このクラスはクライアント用として単独で使用するか、サーバー用としてはHTTP1ServerConnection 経由で使用できます。

パラメータ
  • streamIOStream

  • is_client (bool) – クライアントかサーバーか

  • paramsHTTP1ConnectionParameters インスタンスまたは None

  • contextconnection.context としてアクセスできる、アプリケーション定義の不透明なオブジェクト。

read_response(delegate: HTTPMessageDelegate) Awaitable[bool][ソース]

単一の HTTP レスポンスを読み取ります。

一般的なクライアントモードでの使用法は、write_headerswrite、および finish を使用してリクエストを書き込み、その後 read_response を呼び出すことです。

パラメータ

delegateHTTPMessageDelegate

フルレスポンスが読み込まれた後に bool に解決される Future を返します。ストリームがまだ開いている場合、結果は true です。

set_close_callback(callback: Optional[Callable[[], None]]) None[ソース]

接続が閉じられたときに実行されるコールバックを設定します。

このコールバックは、HTTPMessageDelegate.on_connection_closeとはわずかに異なることに注意してください。HTTPMessageDelegateメソッドは、メッセージを受信中に接続が閉じられたときに呼び出されます。このコールバックは、アクティブなデリゲートがない場合に使用されます(たとえば、サーバー側では、クライアントがリクエストを送信した後、すべてのレスポンスを受信する前に接続を閉じた場合に、このコールバックが使用されます)。

detach() 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[RequestStartLine, ResponseStartLine], headers: 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: IOStream, params: Optional[HTTP1ConnectionParameters] = None, context: Optional[object] = None)[ソース]

HTTP/1.xサーバー。

パラメータ
  • streamIOStream

  • paramsHTTP1ConnectionParametersまたはNone

  • contextconnection.contextとしてアクセス可能な、アプリケーション定義の不透明なオブジェクト

coroutine close() None[ソース]

接続を閉じます。

サービングループが終了した後に解決されるFutureを返します。

start_serving(delegate: HTTPServerConnectionDelegate) None[ソース]

この接続でのリクエストの処理を開始します。

パラメータ

delegateHTTPServerConnectionDelegate

tornado.http1connection.parse_int(s: str) int[ソース]

文字列から非負の整数を解析します。

tornado.http1connection.parse_hex_int(s: str) int[ソース]

文字列から非負の16進整数をパースします。

tornado.http1connection.is_transfer_encoding_chunked(headers: HTTPHeaders) bool[ソース]

ヘッダーが Transfer-Encoding: chunked を指定している場合に true を返します。

他の転送エンコーディングが使用されている場合は、httputil.HTTPInputError を発生させます。