wsgiは同じ名前の複数のリクエストヘッダーをどのように処理しますか?
質問
WSGIヘッダーでは、環境では「HTTP_XXX」値として表されます。たとえば、値 Cookie:
ヘッダーは、環境の HTTP_COOKIE
キーに保存されます。
同じヘッダー名を持つ複数のリクエストヘッダーはどのように表現されますか?
解決
複数のCookieは、セミコロンで区切られた単一のヘッダーに結合されます。
HTTP仕様、ただし、特定の種類のヘッダーのみで、これらのヘッダーを1つに結合することは常に許可されます(ただし、セミコロンではなくコンマを使用します)
他のヒント
これに対する答えは簡単だと思いましたが、少し掘り下げた後、私はよくわかりません。
これまでに見つけたものは次のとおりです。
WSGI PEP-333( http://www.python.org/ dev / peps / pep-0333 / )は、CGI仕様に記述されているものはすべて環境変数に含める必要があることを示唆しています。
CGI仕様(見つけるのが難しくなり、多くの壊れたリンクがあります。 draft-coar-cgi-v11-03 )はメタデータについて話し、言います(セクション6.1.5)
"。複数のヘッダーフィールドが 同じフィールド名が受信されると サーバーはあたかもそれらを書き換えなければなりません 彼らは単一として受け取られていた 同じセマンティクスを持つヘッダーフィールド で表される前に メタ変数"
同じキーを持つ複数のヘッダー行がある場合は、何らかの方法でそれらを1行に結合する必要があることを示唆しています。
HTTP_COOKIEは、例として、すべてのkey = valueペアをセミコロンで区切って1行に連結することでこれをサポートします。