javascript - cookie的名称-值对可以不包含字符=吗?

标签 javascript cookies

我正在处理第三方 JavaScript 代码,该代码通过 document.cookie= 设置 cookie,但不使用 key=value 格式;而不是 document.cookie="mykey=myvalue" 而是 document.cookie="10254/1/19,20,/0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15,16,17,18,19,//20"

这会导致我的服务器端代码出现问题,因为 Chrome 和 Firefox 将其作为没有名称且值为“10254/1/19,20,/0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,//20"。 Safari 发送一系列没有值且名称为“10254/1//0,//-1”、“10254/1//0,1,//-1”、“10254/1//0,1”的 cookie ,2,//-1"等

设置没有 key=value 格式的 cookie 是否合法?我读过https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1并看到 cookie-pair = cookie-name "= cookie-value 但我不清楚 = 是否是强制性的。我想是的,只是想确认一下。

最佳答案

回答我自己:没有 = 的 cookies 应该被用户代理忽略。来自 http://trac.tools.ietf.org/wg/httpstate/trac/ticket/1

Per discussion on the mailing list and at IETF77, I've removed nameless cookies from the draft. Cookies without names (either because they lack a "=" or because "=" occurs as the first character of the set-cookie-string") are now ignored by the user agent.

但实际上,浏览器确实会发送 name-value-pair 不包含 = 的 cookie。但它们没有相同的行为:例如,如果我使用 document.cookie("foo") 设置 cookie,Safari 会向服务器发送一个名为“foo”和空白值的 cookie ,而 Chrome 将发送一个名称为空且值为“foo”的 cookie。

关于javascript - cookie的名称-值对可以不包含字符=吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27726166/

相关文章:

javascript - HTML5 Canvas 改变所有线条的颜色

javascript - 如何在使用 JavaScript 以正确的方向上传之前预览图像?

javascript - 浏览器中的 CSS 错误 : 'Unknown property name' when using pseudo :after

linux - curl 和 cookies - 命令行工具

javascript - 设置来自 google 位置权限的 Javascript cookie?

javascript - 错误: $injector:modulerr Module Error Failed to instantiate module printStation due to: Error: [$injector:modulerr

Javascript - 返回数组中最大的数字

java - Android 应用程序中的 http 响应中缺少 cookie

c# - 跨域创建cookie

jquery - 在phonegap应用程序中使用jquery管理cookie的位置?