Javascript cookie的名称-值对能否不包含字符=?

Javascript cookie的名称-值对能否不包含字符=?,javascript,cookies,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将其作为cookie发送到我的服务器,cookie

我正在处理一个第三方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将其作为cookie发送到我的服务器,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”。Safari发送一系列没有值且名称为“10254/1//0,//-1”、“10254/1//0,1,//-1”、“10254/1//0,1,2,//-1”的cookie


不使用格式
key=value
设置cookie合法吗?我已经阅读并看到了
cookie pair=cookie name“=”cookie value
,但我不清楚
=
是否是必需的。我想是的,只是想确认一下。

回答我自己:没有
=
的cookies应该被用户代理忽略。从

根据邮件列表和IETF77上的讨论,我已经从草稿中删除了无名cookie。用户代理现在会忽略没有名称的cookie(因为它们缺少“=”或因为“=”作为设置的cookie字符串的第一个字符出现)

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