[解決済み] HTTPレスポンスヘッダの重複は許容されますか?
質問
HTTP レスポンスヘッダの重複が標準によって許可されているかどうかについての仕様は見つかりませんでしたが、これが互換性の問題を引き起こすかどうかを知る必要があります。
このようなレスポンス ヘッダーがあるとします。
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
Cache-Control: no-cache
Cache-Control: no-store
Location: http://localhost:9876/foo.bar
Content-Language: en-US
Content-Length: 0
Date: Mon, 06 Dec 2010 21:18:26 GMT
2つの
Cache-Control
ヘッダがあることに注意してください。ブラウザは常に、それらが "Cache-Control: no-cache, no-store" のように書かれているかのように扱うのでしょうか?
どのように解決するのですか?
はい
HTTP RFC2616対応 ここで は言う。
同じfield-nameを持つ複数のmessage-headerフィールドは、そのヘッダのfield-value全体がメッセージに存在する場合に限り、存在してもよい(MAY そのヘッダーフィールドのフィールド値全体がカンマ区切りのリスト[すなわち、#(values)]として定義されている場合に限り フィールドのフィールド-値全体がカンマ区切りのリスト[すなわち、#(values)]として定義されている場合に限り、同じfield-nameを持つ複数のメッセージヘッダーフィールドがメッセージに存在してもよい。それはMUST 複数のヘッダーフィールドを1つにまとめることが可能でなければならない(MUST) メッセージのセマンティクスを変更することなく、複数のヘッダーフィー ルドを一つの "field-name: field-value" のペアに結合することが可能でなければならな い。 メッセージのセマンティクスを変えることなく、後続の各フィールド値を最初 をカンマで区切って追加する。同じfield-nameを持つヘッダーフィールドが受信される順序は、それゆえ フィールド名を持つヘッダーフィールドが受信される順序は、したがって、組み合わされたフィールド値の解釈にとって重要である 従って、プロキシは、メッセージの送信時にこれらのフィー ルド値の順番を変更してはならない[MUST NOT]。 メッセージが転送(forward)されるときに、これらのフィールド値の順序を変更してはならない[MUST NOT]。
ですから、フィールド値全体がカンマ区切りのリストとして定義されていれば、同じ名前の複数のヘッダは大丈夫です (www-authenticate はそのようなケースです)。
Cache-controlについては、こちらで文書化されています。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 このように
Cache-Control = "Cache-Control" ":" 1#cache-directive
は
#1cache-directive
構文は、少なくとも一つのキャッシュディレクティブ要素のリストを定義します(#values の正式な定義については、こちらを参照してください。
表記規則と一般的な文法
)
だから、そうなんです。
Cache-Control: no-cache, no-store
と同じです(順番は重要です)。
Cache-Control: no-cache
Cache-Control: no-store
関連
-
[解決済み] mp3ダウンロードのレスポンスのためのコンテンツタイプ
-
[解決済み] 403 Forbiddenと401 UnauthorizedのHTTPレスポンスの比較
-
[解決済み] cURL呼び出しによるHTTPリクエストを使用してヘッダーを送信する方法は?
-
[解決済み] カスタムHTTPヘッダー:命名規則
-
[解決済み] HTTPヘッダーの大文字と小文字は区別されますか?
-
[解決済み] Google ChromeでHTTPヘッダーを表示するにはどうすればよいですか?
-
[解決済み] httpマルチパートリクエストとは何ですか?
-
[解決済み】HTTPヘッダーの "Content-Length "フィールドとは?
-
[解決済み】Access-Control-Allow-Credentialsヘッダーは、具体的に何をするのでしょうか?
-
[解決済み] HTTPレスポンスヘッダの重複は許容されますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン