一个HTTP Set-Cookie指令只能容纳一个cookie,是不是?我的意思是,一对name=value
对?
答案 0 :(得分:19)
Netscape的原始cookie规范(参见this cached version)没有说明列出多个cookie声明的内容。
但是,由RFC 2109定义的 Set-Cookie 允许以逗号分隔的cookie声明列表:
非正式地,Set-Cookie响应头包含令牌Set-Cookie:,后跟逗号分隔的一个或多个cookie列表。每个cookie都以NAME = VALUE对开头,后跟零个或多个以冒号分隔的属性 - 值对。
同样适用于RFC 2965定义的 Set-Cookie2 :
非正式地,Set-Cookie2响应头包含令牌Set-Cookie2:,后跟一个或多个cookie的逗号分隔列表。每个cookie都以NAME = VALUE对开头,后跟零个或多个以冒号分隔的属性 - 值对。
但是由于大多数用户代理仍然遵循Netscape的原始规范,我宁愿建议只使用自己的 Set-Cookie 标头字段声明每个cookie。
这也是最新的RFC 6265反映的内容:
原始服务器不应该将多个Set-Cookie头字段折叠成 单个标题字段。折叠HTTP标头的常用机制 字段(即[RFC2616]中定义的)可能会改变语义 Set-Cookie标头字段,因为使用了%x2C(“,”)字符 通过Set-Cookie以与这种折叠相冲突的方式。