WSGI如何处理具有相同名称的多个请求头?

10
在WSGI中,头部信息以'HTTP_XXX'的形式存储在环境变量中。例如,'Cookie:'头部信息以'environ'中的'HTTP_COOKIE'键值存储。
如果有多个相同名称的请求头部信息,它们会如何表示?
2个回答

8

多个cookie会被合并为一个头部,用分号隔开。

HTTP规范允许使用多个头部,但只对某些类型的头部有效,而且始终可以将这些头部组合成一个(使用逗号而不是分号)。


3
我以为这个问题的答案很简单,但是经过一番搜索后,我不太确定了。
到目前为止,我找到了以下信息:
WSGI PEP-333 (http://www.python.org/dev/peps/pep-0333/) 建议环境变量应包含 CGI 规范中所述的内容。
CGI 规范(越来越难找,很多链接已经损坏,最好的我能找到的在 draft-coar-cgi-v11-03)讨论了元数据,并且说(第6.1.5节)
如果接收到具有相同字段名称的多个标题字段,则服务器必须将它们重写,就好像它们被接收为一个具有相同语义的标题字段之前被表示为元变量一样。
这表明,如果您有多个具有相同键的标题行,则必须以某种方式将它们合并成一行。
HTTP_COOKIE作为一个示例,通过将所有的键值对用分号连接在一起形成一行来支持此功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接