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