在HTTP规范中,分隔cookie的字符串是什么?

时间:2011-01-30 15:02:21

标签: http http-headers rfc httpcookie

分号;Cookie:字符串或其他字符串?

2 个答案:

答案 0 :(得分:32)

检查HTTP请求中的cookie

Cookie:标头具有以下语法:

Cookie: <Name> = <Value> { ; <Name> = <Value> }

因此,用分号分隔各个cookie。

在HTTP响应中设置cookie

另一方面,在响应中设置cookie时,每个Set-Cookie:标题都有一个cookie:

Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…

要设置多个Cookie,请在HTTP响应中重复Set-Cookie标头。


注意:

  • 查看带有示例的教程here,查看RFC 6265 HTTP State Management Mechanism以获取显示语法完整详细信息的规范性参考。
  • 现已过时的RFC 2965定义了一对被遗弃的备用标题Cookie2Set-Cookie2
  • HTTP状态管理机制RFC 2109RFC 2965)的已废弃版本提供了折叠多个Set-Cookie(或Set-Cookie2的方法)标题合而为一。但是,最新的RFC 6265规范不建议进行此折叠。

答案 1 :(得分:1)

答案是逗号,

RFC 2109的第4.2.2节中,有Set-Cookie标题

的此规范
   set-cookie      =       "Set-Cookie:" cookies
   cookies         =       1#cookie

使用以下语句非正式地,Set-Cookie响应头包含令牌Set-Cookie:,后跟逗号分隔的一个或多个cookie列表。({{1}的正式含义上述表示法在{em> A部分的RFC 733中定义.NOATIONAL CONVENTIONS ,第5点

  

定义构造“#”,类似于“*”,如下:

#
     

指示至少 <l>#<m>element 和最多<l>个元素,每个元素分隔   一个或多个逗号(“,”)。

是的,RFC 2109已被RFC 2965废弃,后者又被RFC 6265淘汰。
不,它不会在此上下文中改变任何内容

  • 大多数现有HTTP服务器和客户端都支持RFC 2109
  • RFC 6265 禁止<m>折叠