1. ホーム
  2. http

[解決済み] リクエストやレスポンスに1つのHTTPヘッダーの複数の値を追加するための規格

2023-07-07 09:48:10

質問

HTTP ヘッダーとして値のリストを追加したい場合、これを行う標準的な方法はありますか? RFC 822 では (私が容易に理解できるような) ものを見つけられませんでした。 例えば カンマで区切られた値が標準なのか、セミコロンで区切られた値が標準なのか。 標準は全くないのでしょうか?

Key: value1;value2;value3

どのように解決するのですか?

HTTP の仕様を見てみましょう。 RFC 2616 と書かれているところです。

メッセージヘッダーフィールドに は、メッセージ内に存在してもよい(MAY)。 メッセージに存在してもよい。 そのヘッダーフィールドのフィールド値全体が カンマで区切られたリストとして定義されている [すなわち、#(values)]。それは以下のことが可能でなければならない(MUST)。 複数のヘッダーフィールドを一つの を一つの "field-name: field-value" のペアを、メッセージのセマンティクスを変えることなく、各ヘッダー メッセージのセマンティクスを変えることなく、各 に追加することで、メッセージの意味を変えることなく、1つの "フィールド名: フィールド値"のペアにまとめることができます。 に追加することである。順番は のヘッダーフィールドが受信される順序は、同じ したがって、同じフィールド名を持つヘッダーフィールドを受信する順序は の解釈にとって重要である。 の解釈にとって重要である。 プロキシはメッセージが受信されるときにこれらのフィールド値の 順番を変更してはならない[MUST NOT]。 したがって、プロキシはメッセージが転送(forward)されるときにこれらの を受信する。

これが意味するところは、カンマを使って互いに値を付加できる限り、一つの応答で同じヘッダを異なる値で複数回送ることができるということです。 これはまた、カンマで連結することで1つのヘッダに複数の値を送ることができることも意味しています。

ですから、あなたの場合はこうなります。

Key: value1,value2,value3