Http 在饼干里放上“=”符号、符号和冒号

Http 在饼干里放上“=”符号、符号和冒号,http,cookies,urlencode,session-cookies,httpcookie,Http,Cookies,Urlencode,Session Cookies,Httpcookie,可能重复: 我需要在cookie中分离值。所以我选择了&’来分离name=value对,就像在URL中一样。一个名称也可以有多个值,所以我用冒号分隔这些值 我的问题是这是否合法?我需要对所有内容进行URL编码吗?这些值里面可以有冒号,所以我想我应该对这些值进行URL编码,以确保值中的冒号不会与分隔符冲突。我在某个地方读到,用撇号括起整个饼干也很有效,这有意义吗 如果这是不合法的,那么存储我的多个名称/值对的最佳方法是什么?这些名称/值对通常每个名称都有多个特定顺序的值,因此我不能只复制名称/值

可能重复:

我需要在cookie中分离值。所以我选择了&’来分离name=value对,就像在URL中一样。一个名称也可以有多个值,所以我用冒号分隔这些值

我的问题是这是否合法?我需要对所有内容进行URL编码吗?这些值里面可以有冒号,所以我想我应该对这些值进行URL编码,以确保值中的冒号不会与分隔符冲突。我在某个地方读到,用撇号括起整个饼干也很有效,这有意义吗


如果这是不合法的,那么存储我的多个名称/值对的最佳方法是什么?这些名称/值对通常每个名称都有多个特定顺序的值,因此我不能只复制名称/值?

您必须对cookie的名称和值部分中包含的字符进行百分比转义,就像您应该已经做的那样。例如,=将变为%3D,&将变为%26,等等。只需建立要用于cookie值的字符串,并通过语言/框架的URI转义函数运行它。如果您的框架有一个设置cookie的方法,并且它使用不同的名称/值参数,那么它应该为您这样做。

您没有为每个名称/值对使用一个cookie有什么原因吗?我想有两个原因,但都不是很重要。。。所以我当然愿意改变这一点,废除&s。首先,可能有许多名称/值对,我不想淹没那些监视他们的cookie和风险问题的人。第二,它只是使JavaScript的处理更容易。。。我所要做的就是$.eachcookie.split'&',…的副本。我的回答再好不过了。顺便说一句,我会调查利用服务器端会话是否不是一个更好的方法,因为cookie所能保存的信息量非常有限。您可以在将数据存储到cookie中之前对其进行加密,然后保存您想要的任何值。@BalusC-Bobince确实给出了很好的响应,谢谢@James Black-加密cookie中数据的最佳方法是什么?Base64?简单的URL编码?我的框架是Spring 3/JEE 6,根据我正在阅读的JavaDoc,它们根本没有转义或unescape cookies。然后,你必须按照我的建议,在将其发送到浏览器之前对名称和值使用URI转义函数。