我正在学习有关 cookie 的知识,并且想知道浏览器对它的支持情况:
对于每个域名/网站,可以向浏览器发送多少个 cookie,以及大小是多少?
如果发送并存储多个 cookie,是否会影响性能?
答案1
不同的浏览器对 Cookie 的大小限制不同。有些浏览器一般准则:
我发现的大多数文档(虽然不多)都表明 Web 浏览器必须至少支持以下功能:
- 共计 300 块饼干
- 每个域 20 个 Cookie
- 每个 Cookie 4096 字节
似乎这个最低要求是原始的 RFC 关于 cookie– 具体请参见第 6.3 节。
每个域的 Cookie 限制
这里有一个测试脚本来测试你的浏览器:
- 火狐 2:50 1
- 火狐 3:50 1
- Internet Explorer 7 2:50(应用后来自微软的补丁)
- 歌剧 9:30
- Safari:无限制(!)
最大 Cookie 限制:
- Firefox 2:1000 1
- Firefox 3:1000 1
- Internet Explorer:未知
- 歌剧:未知
1可以是放介于 0 到 65535 之间
2由 Microsoft 记录这里
Cookies 并不保存在服务器上,而是保存在领域基础(一个服务器可能托管多个域,或者相反,一个服务器场可能只服务于一个域)。
一般情况下,我会避免在 cookie 中保存大量信息,因为每次请求时数据都会发送到浏览器或从浏览器传出。正如您在问题中提到的,这可能会影响性能。
通常,人们会在 cookie 中存储少量数据,主要用于识别用户/会话,以便可以从数据库或 Web 服务器本地的其他资源中获取更多数据。
答案2
根据我的研究,我建议您使用不超过 50 个 cookie,并且每个域的所有 cookie 不超过 4093 字节。
最低公分母是:
- IE 8/9/10/11 的限制为50 块饼干,每个 Cookie 5117 个字符,每个域 10234 字节
- iPad iOS 5.1 上的 Safari ?? 限制为 600 个 cookie,每个 cookie 4093 字节,并且每个域名 4093 字节
有趣的是,请注意 IE 有一个特点限制,而大多数都有字节限制。这意味着对于 UTF-8 等多字节编码,IE 可以容纳更多数据。
你可以在这里阅读更多:http://browsercookielimits.squawky.net/