在 WSGI 中,标头在环境中表示为“HTTP_XXX”值。例如,值Cookie:
标头存储在环境的HTTP_COOKIE
键中。
具有相同标头名称的多个请求标头如何表示?
多个 cookie 组合成一个标头,用分号分隔。
HTTP 规范允许多个标头,但仅适用于某些类型的标头,并且始终允许将这些标头组合为一个(尽管使用逗号,而不是分号)
我认为这个问题的答案是微不足道的,但经过一番挖掘后,我不太确定。
这是我到目前为止发现的:
WSGI PEP-333 ( http://www.python.org/dev/peps/pep-0333/ ) 建议环境变量应该包含 CGI 规范所说的任何内容。
CGI 规范(越来越难找到,很多断开的链接,最好在draft-coar-cgi-v11-03 找到)谈到元数据并说(第 6.1.5 节)
“。如果接收到具有相同字段名称的多个标头字段,则服务器必须重写它们,就好像它们在被表示为元变量之前已被接收为具有相同语义的单个标头字段一样”
这向我表明,如果您有多个具有相同键的标题行,则必须以某种方式将它们合并为一行。
例如,HTTP_COOKIE 通过将所有 key=value 对连接成一行并在它们之间用分号来支持这一点。