据谷歌搜索告诉我,cookie的最大允许数量在很大程度上取决于浏览器,但我找不到任何最新数据,说明现代浏览器允许使用多少cookie。
我需要在Cookie中存储大量用户首选项(对于尚未注册的用户),那么最好的方法是什么? (此外,这些cookie将通过javascript客户端和php服务器端访问)
答案 0 :(得分:22)
来自rfc:
至少300个cookies
每个cookie至少4096个字节(以大小为单位来衡量) 在语法中包含非终端cookie的字符 Set-Cookie标题的描述)
每个唯一的主机或域名至少有20个Cookie
这些是最低要求。 IE6团队没有得到这个。其他一切都是特定于浏览器的。你最好编写一个测试平台来测试每个浏览器。使用很少的增量步骤测试最大大小和数量(并检查它们是否仍然可读)。
另外,我似乎记得apache有大量cookie的问题。不记得我曾经见过的地方。
这是一个小小的cookie测试脚本: http://krijnhoetmer.nl/stuff/javascript/maximum-cookies/
答案 1 :(得分:15)
最好的方法是不要将它们存放在cookie中。
将它们存储在数据库中,并将数据库密钥存储在cookie中。如果它只是一些偏好,那么安全性不是问题。
不要忘记每次请求都会发送cookie - 如果您有2kb的cookie数据并在页面上加载10个图像,那么这将是额外的22kb数据。
答案 2 :(得分:6)
Cookie数量:
Cookie大小限制(4096字节):
SRC:http://webdesign.about.com/od/cookies/f/cookies-per-domain-limit.htm和http://www.nczonline.net/blog/2008/05/17/browser-cookie-restrictions/
答案 3 :(得分:4)
今天我调查了这个,如果你想支持大多数浏览器,那么每个域不超过50个cookie,每个域不超过4095个字节(即所有cookie的总大小&lt; = 4095字节)< / p>
要了解更多相关信息,请here is the test page and results。
答案 4 :(得分:2)
你真的不需要多个 - 只需使用一个来存储ID客户端,并将存储在服务器端的所有内容存储在相同的ID中。除了其他任何东西,你离开客户端的数据越少,他们删除/破坏/破解/等等的数据就越少。
答案 5 :(得分:0)
不确定从他们的观点来看有多大意义,但I've seen websites in the wild设置了超过450个Cookie和reporting to over 140 distinctive third party domains。