一个HTTP Set-Cookie指令只能容纳一个cookie,对吗?我的意思是,一name=value对?
Gum*_*mbo 23
Netscape的原始cookie规范(请参阅此缓存版本)没有说明列出多个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头字段的语义,因为Set-Cookie以一种冲突的方式使用%x2C(",")字符有这样的折叠.