[311] Content-Location:
ヘッダーは、
payload に含まれる表現に対応する資源を識別する URL
を表すものです >>13。
[313] HTTP においては、値は、 RFC 3986 absolute-URI
または RFC 7230 partial-URI
です >>13。すなわち、
素片識別子を含まない URL です。
[25] 選択応答には最善の異体の URL を表す Content-Location:
ヘッダーを含めなければなりません >>24。
[27] WebDAV コレクションの末尾の /
を省略した URL
についての応答は、末尾に /
を含む URL の
Content-Location:
ヘッダーを含めるべきです >>26。
[312] Content-Location:
ヘッダーは、
payload に含まれる表現に対応する資源を識別する URL
を表すものです >>13。これはすなわち、当該メッセージの生成の時点でその URL
に GET
要求を送信すると、 200
応答が同じ表現を含むであろうことを表します >>13。
[314] この値は実効要求URLの代わりとなるものではなく、 表現メタデータです >>13。
[324] HTTP 要求メッセージに指定されている場合、利用者エージェントが元々その URL の表現を取得して (場合によっては変更を加えて) 要求に含めたことを示しています。 >>13
[315] HTTP 2xx
応答に含まれている場合、
絶対URLに解決したら実効要求URL と同じになる場合は、受信者は、 payload
がメッセージの生成時刻における当該資源の表現であると考えて構いません >>13。
PUT
や POST
のような状態を変更する要求の場合は、
鯖の応答が「成功しました」のような結果報告であるのか、
新しい表現であるのかを Content-Location:
によって区別できます。 >>13
(クライアント側のキャッシュのようなものを更新することが想定されているようです。)[318] Content-Location:
ヘッダーが 2xx
応答に含まれている場合で、実効要求URLと異なる場合には、
起源鯖がその URL の資源の表現であると主張していることになります。
この主張が正しいかどうかは HTTP としては機械的に決められません。 >>13
Prefer: return=representation
の項も参照。[320] GET
や HEAD
要求に対する応答が >>318 のようである場合、
実効要求URLが内容折衝の対象となる資源を表していて、
Content-Location:
は選択された表現を識別する URL
となっていることを示しています >>13。
Content-Location:
が実際に設定されます。
ただし、 Apache はその指定された URL が実際にアクセス可能であることを保証していません。
特に複雑な URL の書き換えが Apache 内部で行われる場合など、
実在しない URL が指定されることがよくあります。
これは Content-Location:
が実際には意味を持たない理由の一つでもあります。[322] 状態を変更するメソッドに対する 201
応答が >>318 のようである場合、
Content-Location
と Location
が等しければ、 payload が新しく作られた資源の現在の表現であることを示しています
>>13。
[334] 起源鯖は、 POST
への応答をキャッシュさせて以後の
GET
の処理で再利用できるようにしたい時は、
200
応答を送り、その Content-Location:
ヘッダーに実効要求URLと同じ値を設定することができます >>335。
[323] それ以外で >>318 のようである場合、 payload は要求された動作の状態を報告するもので、
同じ報告が指定された URL を GET
することで得られることを示しています。
>>13
[332] HTTP の Content-Location:
ヘッダーは、
無視するべきです >>9。
[325] 起源鯖は、要求メッセージで Content-Location:
を受信した時は、これをそのまま表現の一部として保存するメタデータとしてではなく、
一時的な文脈情報として扱わなければなりません。
起源鯖はこれを処理の補助に用いたり、情報源を表すリンクに用いたりしても構いませんが、
要求の意味を変える情報として使ってはなりません >>13。
[326] 例えば、ある URL で内容折衝で複数の表現が提供されている時に、
特定の表現だけを更新するために、 PUT
要求に
Content-Location
を指定する、といった使い方はできません >>13。
[22] Content-Location:
ヘッダーの値は、
キャッシュの非妥当化に使われることもあります。
[29] Content-Location:
ヘッダーの値は、
PATCH
要求に対する応答のキャッシュ可能性の判定にも用いられます >>28。
[33] FCAST の実装は、 Content-Location:
HTTPヘッダーに対応しなければなりません >>32。
[35] Content-Location:
を解釈するための基底URLは、
対象URLです。
[36] FCAST においても相対URLを使った例が示されています >>34 が、対象URLに相当するものは無く、何が基底URLとなるのかは不明です。
[14] HTTP における表現の URL は、次のように定義されています >>13。
[310] この方法で決定された URL がどのような場面で使われるのかは謎です。 Webブラウザーで応答の URL や基底URL として使われるのは、この URL ではなく対象URLです。
[327] Content-Location:
や Content-Base:
は、元々はHTTPメッセージの基底URLを明示するものとの役割も持っていました。
Content-Base:
は後に廃止されました。[329] しかし実際にはどのWebブラウザーもこれを実装しておらず、 鯖はしばしば壊れた値を出力していたため、 実装しようとすることで既存の Webサイトが壊れることがわかりました >>3。
[330] Webブラウザー側は Content-Location:
は意味を成さないとして無視することを求めています >>4, >>9, >>10 が、
IETF HTTP WG は基底URLとしての役割を削除した >>7, >>20
のみで、ヘッダー自体は削除しませんでした。
[1]
Livedoor clipがContent-Locationヘッダの参照先をブックマークする件 (kuruman.org > Kuruman Memo) (2007-01-29 16:17:52 +09:00
版) <http://kuruman.org/diary/2007/01/29/content-location-sbm>
(名無しさん 2007-01-29 07:33:06 +00:00)
[2] Content-Locationの出力やめた (kuruman.org > Kuruman Memo) ( 版) <http://kuruman.org/diary/2007/03/20/delete-content-location-header> (名無しさん 2007-03-20 01:07:58 +00:00)
[5] RFC 4463 - A Media Resource Control Protocol (MRCP) Developed by Cisco, Nuance, and Speechworks ( ( 版)) <http://tools.ietf.org/html/rfc4463#section-5.4.8>
[6] RFC 6787 - Media Resource Control Protocol Version 2 (MRCPv2) ( ( 版)) <http://tools.ietf.org/html/rfc6787#section-6.2.10>
[8] IRC logs: freenode / #whatwg / 20130117 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20130117#l-766>