[英]Limit on number of cookies allowed? - err_spdy_protocol_error
[英]Maximum number of cookies allowed
据谷歌搜索告诉我,允许的最大 cookie 数量在很大程度上取决于浏览器,但是我找不到任何关于现代浏览器允许多少 cookie 的最新数据。
我需要在 cookie 中存储大量用户首选项(对于尚未注册的用户),那么最好的方法是什么? (此外,这些 cookie 将通过 javascript 客户端和 php 服务器端访问)
从rfc :
至少 300 个饼干
每个 cookie 至少 4096 字节(根据 Set-Cookie 标头的语法描述中构成 cookie 非终结符的字符的大小来衡量)
每个唯一的主机名或域名至少有 20 个 cookie
这些是最低要求。 IE6 团队没有意识到这一点。 其他一切都是高度特定于浏览器的。 您最好编写一个测试平台来测试每个浏览器。 以少量增量步骤测试最大大小和数量(并检查它们是否仍然可读)。
另外,我似乎记得 apache 有大量 cookie 的问题。 不记得我在哪里看到过。
这是一个小 cookie 测试脚本: http : //krijnhoetmer.nl/stuff/javascript/maximum-cookies/
最好的方法是根本不将它们存储在 cookie 中。
将它们存储在数据库中,并将 DB 键存储在 cookie 中。 如果只是一些偏好,那么安全性就不是什么大问题。
不要忘记 cookie 将随每个请求一起发送 - 如果您有 2kb 的 cookie 数据并在页面上加载 10 张图像,那么这额外的 22kb 数据。
饼干数量:
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-限制/
我今天研究了这个,如果你想支持大多数浏览器,那么每个域不要超过 50 个 cookie,每个域不要超过 4095 个字节(即所有 cookie 的总大小 <= 4095 个字节)
要阅读有关它的更多信息,这里是测试页和结果。
IIRC,对于大多数人来说是 20,对于某些人来说更多,而对于一种特定的浏览器(又是 IIRC,IE5.5?),它是 10。 最多 10 被认为是一个安全数字。
无论如何,您实际上并不需要多个 - 只需使用一个来存储客户端的 ID,并根据相同的 ID 存储您需要在服务器端存储的所有内容。 除此之外,您离开客户端的数据越少,他们删除/损坏/破解/等的次数就越少。
不确定从他们的角度来看这有多大意义,但我见过一些网站设置了 450 多个 cookie 并向140 多个独特的第三方域报告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.