TE:

TE: ヘッダー (HTTP)

[1] TE: ヘッダーは、クライアントが受け付ける意志がある転送符号化を表します。

仕様書

意味

[17] TE: ヘッダーは、クライアントが受け付ける意志がある (処理できる) 転送符号化(群)を指定するものです。

[11] TE: ヘッダーがないか、空の時は、 chunked 符号化のみ受け入れられることを表します >>2

[18] 仕様上明記されていませんが、ヘッダーの値が非妥当の時も、 そのように解釈するべきと思われます。

[12] なお、転送符号化を使用しないことは、常に受け入れられると考えます >>2。 つまり、 TE: ヘッダーの有無や値に関わらず、 は常に無変換で元のバイト列をそのまま送ることができます。

構文

[3] このヘッダーの値は0個以上の値のリスト (#) です。 リストの各項目は転送符号化の名前と引数です。 >>2

  1. ?
    1. 転送符号化の名前と引数
    2. *
      1. FWS
      2. ,
      3. FWS
      4. 転送符号化の名前と引数
[5] 転送符号化の項を参照してください。

[6] 名前として chunked を指定してはなりません >>2

[7] HTTP/1.1 では chunked への対応は必須となっているので、 明記する必要性がありません。

[8] 転送符号化のかわりに特別な値 trailers (大文字・小文字不区別) を指定することができます >>2

[9] 仕様上完全に明確ではありませんが、 trailers には引数を指定できないようです。

[10] 転送符号化の名前と引数の後には、特別な q 引数を指定できます。詳しくは q の項を参照してください。

[23] HTTP/2 では、 trailers 以外の値を指定してはなりません >>22

文脈

[16] このヘッダークライアント要求に指定します。

[4] このヘッダーは、複数指定できます。

[15] 送信者TE: を用いるときは Connection:TE を含めなければなりません >>2

処理

[19] は、応答送信する際に要求で受け入れると表明された転送符号化から適切なものを選ぶことになります。

[13] 複数の転送符号化を受け入れられるときは、 q 引数があればその値が優先度を表します。

[14] q 引数がないときや、同位の値があるときの解釈は明記されていません。

[21] なお、 HTTP/1.0要求の場合、 TE: ヘッダーの有無に関わらず、 転送符号化は認められていません。

[20] 転送符号化の項も参照。

歴史

RFC 2616 (HTTP/1.1) 14.39 TE

The TE request-header field indicates what extension transfer-codings it is willing to accept in the response and whether or not it is willing to accept trailer fields in a chunked transfer-coding. Its value may consist of the keyword "trailers" and/or a comma-separated list of extension transfer-coding names with optional accept parameters (as described in section 3.6).

TE 要求頭欄は、応答でどの拡張転送符号化を受け入れる意思があるかや、 chunked (塊) 転送符号化で trailers 欄を受け入れる意思があるか否か を示します。値は、キーワード「trailers」と読点(comma)区切りの 拡張転送符号化の名前, 必要があれば受け入れパラメーター (3.6節で説明) の一覧の両方または一方を取ることが出来ます。

       TE        = "TE" ":" #( t-codings )
       t-codings = "trailers" | ( transfer-extension [ accept-params ] )

The presence of the keyword "trailers" indicates that the client is willing to accept trailer fields in a chunked transfer-coding, as defined in section 3.6.1. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding.

「trailers」キーワードが現れた場合、クライアントは chunked (塊) 転送符号化において3.6.1節で定義されたように、 trailers 欄を 受け入れる意思があることを示します。このキーワードは、転送符号化を 表すものではありませんが、転送符号化値と同様に使うのに予約します。

Examples of its use are: 使用例:

  • TE: deflate
  • TE:
  • TE: trailers, deflate;q=0.5

The TE header field only applies to the immediate connection. Therefore, the keyword MUST be supplied within a Connection header field (section 14.10) whenever TE is present in an HTTP/1.1 message.

TE 頭欄は、直後の接続にのみ適用されます。ですから、 TE が HTTP/1.1 メッセージ中に出現する場合は必ず、キーワードが Connection 頭欄 (14.10節) 中にも供給されなければなりません

A server tests whether a transfer-coding is acceptable, according to a TE field, using these rules:

サーバーは、 TE 欄により次の規則を使って、転送符号化が使えるかどうかを 確認します。

1. The "chunked" transfer-coding is always acceptable. If the keyword "trailers" is listed, the client indicates that it is willing to accept trailer fields in the chunked response on behalf of itself and any downstream clients. The implication is that, if given, the client is stating that either all downstream clients are willing to accept trailer fields in the forwarded response, or that it will attempt to buffer the response on behalf of downstream recipients.

         Note: HTTP/1.1 does not define any means to limit the size of a
         chunked response such that a client can be assured of buffering
         the entire response.
      2. If the transfer-coding being tested is one of the transfer-
         codings listed in the TE field, then it is acceptable unless it
         is accompanied by a qvalue of 0. (As defined in section 3.9, a
         qvalue of 0 means "not acceptable.")
      3. If multiple transfer-codings are acceptable, then the
         acceptable transfer-coding with the highest non-zero qvalue is
         preferred.  The "chunked" transfer-coding always has a qvalue
         of 1.

If the TE field-value is empty or if no TE field is present, the only transfer-coding is "chunked". A message with no transfer-coding is always acceptable.

TE 欄値が空か、 TE 欄が存在しない場合、転送符号化「chunked」(塊) だけが使えます。転送符号化の無いメッセージは常に認められます。