一个cookie文件的最大大小是多少?

18

Cookie的大小有限制吗?而且这与浏览器有关吗?


1
如果你的数据如此之大,以至于这成为一个问题,那么你本来就不应该将它存储在cookie中。 - animuson
3个回答

24

“官方”的最大大小为4KB,但我更希望将其保持在远低于此值的范围内:最多只有几百字节。

原因是cookie会随着每一个请求从客户端传输到服务器-即使请求图像、css和js文件(如果它们驻留在同一主机上通常应该避免这种情况,但对于小型站点来说可能并不值得麻烦)。这意味着您需要要求客户端针对每个请求传输4KB的数据-请记住,大多数消费级宽带上传速度比下载速度慢得多。


1
+1 | 很好的解释,还提到了上传速度的问题。我从未遇到过上传速度接近或大于下载速度的人。我的上传速度几乎是下载速度的一半。 - animuson

8

重要的是,官方的cookie规范RFC 2965规定了浏览器应该遵循的最低标准:

5.3 实现限制
实际的用户代理实现对它们可以存储的 cookie 的数量和大小有限制。一般来说,用户代理的 cookie 支持不应该有固定的限制。它们应该尽可能地存储许多经常使用的 cookie。此外,通用的用户代理应该分别提供以下最小功能,但不一定同时提供:
- 至少 300 个 cookie - 每个 cookie 至少 4096 字节(由组成 Set-Cookie2 标头中 cookie 非终端的字符测量,并在 Set-Cookie2 标头中接收) - 每个唯一主机或域名至少 20 个 cookie 为特定目的或容量有限的设备创建的用户代理应该提供至少 20 个 4096 字节的 cookie,以确保用户可以与基于会话的源服务器交互。
在 Set-Cookie2 响应标头中的信息必须全部保留。如果由于某种原因没有足够的空间来存储 cookie,则必须将其丢弃,而不是截断。应用程序应尽可能使用尽可能少且尽可能小的 cookie,并且它们应该能够优雅地处理 cookie 的丢失。
阅读更多:http://www.faqs.org/rfcs/rfc2965.html#ixzz0rjy5CJQa

关于Cookie的FAQ:

微软将Cookie保存在“临时互联网文件”文件夹中,这是一个系统文件夹,您可以设置其最大大小(默认为硬盘的2%)。

无论如何,请记住,大多数Cookie文件的大小都不超过4KB,因此您需要大约一百万个Cookie才能填满4GB的驱动器。这几乎是不可能的。

您会在互联网上看到关于4KB限制的参考资料以及其他有用的统计数据。


火狐浏览器的限制是4096,尽管这只是一个最小值。 - Srikar Doddi
1
然后Firefox正确地实现了规范,但只是最低限度的建议。对于我们来说,这是不幸的,因为我们使用更长的cookie。 - John K

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接