TCN

TCN: ヘッダー (HTTP)

[23] TCN: ヘッダーは、透過内容折衝応答であることとその種別を示します。

仕様書

意味

[6] TCN: ヘッダー透過的折衝可能資源であることを示すものです >>4

構文

[7] TCN: ヘッダーの値は0個以上の値のリスト (#) です >>4

  1. ?
    1. *
      1. OWS
      2. ,
      3. OWS

[8] 値は字句か、字句=字句または引用文字列を連ねたものです >>4

  1. 字句
  2. ?
    1. =
    2. |
      1. 字句
      2. 引用文字列
[9] 値の一部は指令と呼ばれていますが、すべてでは無いようです。
[11] 値の解釈は明記されていませんが、定義されているものは構文上大文字・小文字不区別となっています。 指定の順序に意味は無いものと推測されます。

文脈

[13] 透過的折衝可能資源以外は TCN: ヘッダーを含めてはなりません >>4

[14] 透過的折衝可能資源では、 2xx3xx応答には TCN: ヘッダーlistchoiceadhoc のいずれかを含めなければなりません >>4, >>22。ただし 304 には含めても含めなくても構いません >>4, >>22

[15] 透過的折衝可能資源の他の応答には、 >>14 の3つの値以外の TCN: ヘッダーを含めて構いません >>4, >>22

[16] 起源鯖鯖側上書きを行った時は re-choose または keep を含めなければなりません >>4

[17] re-choose を含めた場合は Alternates: ヘッダーを含めなければなりません >>4

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

[10] 値 (指令など) としては次のものがあります。

[12] IANA登録簿は特に用意されていないようです。

[20] クライアントは認識できない値を無視するべきです >>4

処理モデル

[18] 利用者エージェントは、応答re-chooseAlternates: が含まれている時は、内部変種選択アルゴリズムによって再選択するべきです >>4

[19] 利用者エージェントは、応答keep が含まれている時は、再折衝するべきではなく、 直接表示するか、リダイレクトなら直接処理するべきです

歴史

[5] RFC 2295 (HTTP 透過内容折衝) 8.5 TCN

The TCN response header is used by a server to signal that the resource is transparently negotiated.

       TCN = "TCN" ":" #( response-type
                        | server-side-override-directive
                        | tcn-extension )
       response-type = "list" | "choice" | "adhoc"
       server-side-override-directive = "re-choose" | "keep"
       tcn-extension = token [ "=" ( token | quoted-string ) ]

If the resource is not transparently negotiated, a TCN header MUST NOT be included in any response. If the resource is transparently negotiated, a TCN header, which includes the response-type value of the response, MUST be included in every response with a 2xx status code or any 3xx status code, except 304, in which it MAY be included. A TCN header MAY also be included, without a response-type value, in other responses from transparently negotiated resources.

A server-side override directive MUST be included if the origin server performed a server-side override when choosing the response. If the directive is "re-choose", the server MUST include an Alternates header with the variant bound to the negotiable resource in the response, and user agent SHOULD use its internal variant selection algorithm to choose, retrieve, and display the best variant from this list. If the directive is "keep" the user agent SHOULD NOT renegotiate on the response, but display it directly, or act on it directly if it is a redirection response.

Clients SHOULD ignore all tcn-extensions they do not understand.

RFC 4229

[3] RFC 4229RFC 2295 を出典にIANA登録簿に状態「実験的」で登録しています >>1

メモ

[2] Apache HTTP Server Project ( ( 版)) <http://httpd.apache.org/docs/1.3/misc/known_client_problems.html#lynx-negotiate-trans>