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

在HTTP规范中,分隔Cookie的字符串是什么?,http,http-headers,rfc,httpcookie,Http,Http Headers,Rfc,Httpcookie,分号,Cookie:字符串或其他字符串?检查HTTP请求中的Cookie Cookie:标头具有以下语法: Cookie: <Name> = <Value> { ; <Name> = <Value> } 要设置多个Cookie,set Cookie头在HTTP响应中重复 注: 请查看包含示例的教程,以及显示语法完整细节的规范性参考 现在已经过时的文件定义了一对替代的头文件Cookie2和Set-Cookie2,它们被放弃了 HTTP状态管理机

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

检查HTTP请求中的Cookie
Cookie:
标头具有以下语法:

Cookie: <Name> = <Value> { ; <Name> = <Value> }
要设置多个Cookie,
set Cookie
头在HTTP响应中重复


注:

  • 请查看包含示例的教程,以及显示语法完整细节的规范性参考
  • 现在已经过时的文件定义了一对替代的头文件
    Cookie2
    Set-Cookie2
    ,它们被放弃了
  • HTTP状态管理机制(和)的过时版本提供了一种将多个
    Set-Cookie
    (或
    Set-Cookie2
    )头折叠为一个头的方法。但是,最新规范不推荐这种折叠

答案是逗号
符号。

在第4.2.2节中,有
Set Cookie
头的规范

   set-cookie      =       "Set-Cookie:" cookies
   cookies         =       1#cookie
对于以下非正式语句,Set Cookie响应头包含令牌Set Cookie:,后跟一个或多个Cookie的逗号分隔列表。(上述符号中
#
的正式含义见第A节“符号约定”第5点中的定义。)

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

              <l>#<m>element
#元素
表示至少
和最多
元素,每个元素之间用 一个或多个逗号(“,”)

是的,RFC 2109被RFC 2965淘汰,而RFC 2965又被淘汰。
不,在这种情况下,它不会改变任何东西

  • 大多数现有HTTP服务器和客户端支持RFC2109
  • RFC 6265不禁止
    设置Cookie
    折叠

另一方面,当在响应中设置cookie时,每个
Set cookie:
头中有一个cookie:Not true。在one reads的第4.2.1节中,源服务器可能在响应中包含多个Set cookie头。请注意,中间网关可以将多个此类头折叠到单个头中。在sam的第4.2.2节中RFC one非正式读取时,Set Cookie响应头包含令牌Set Cookie:,后面是一个逗号分隔的一个或多个Cookie列表。@PIOTRDOPROGOST RFC 2109被RFC 2965淘汰,RFC 2965又被RFC 6265淘汰。最新规范建议避免
Set Cookie
折叠。2109和2965都不支持fol在呈现的ABNF语法中使用。感谢您指出这种歧义。我将在我的回复中修复RFC引用。2109和2965都不支持呈现的ABNF语法中的折叠。呈现的ABNF语法不正确明确地支持在一个
Set Cookie
标头中使用多个Cookie(折叠)-见我的答案。因此,单个Cookie用分号分隔。不正确。
Cookie:
标题语法中的分号分隔每个
=
对,而不是每个Cookie,因为每个Cookie可以有任意数量的这样的对。“用分号分隔”-尽管它们实际上用分号+空格分隔(2个字符).Related:,这很重要。RFC 6265应该描述UAs的实际功能。@JulianReschke在这种情况下,你能告诉我们哪些流行的UAs不处理折叠
设置Cookie
头吗?Piotr,我不知道,我也没有说过。我只是指出RFC 6265应该准确地定义cookies是如何ork,与旧的RFC相反。-1因为此答案直接与接受的答案相矛盾,并且此答案的作者甚至承认它在接受的答案的评论线程中不是逗号。此答案不应该完全删除吗?RFC 6265不禁止设置Cookie折叠(可能是为了向后兼容),但它强烈反对使用“不应该”:“源服务器不应该将多个集合Cookie头字段折叠成单个头字段。”
              <l>#<m>element