【发布时间】:2010-06-24 03:54:58
【问题描述】:
对 cookie 的大小有任何限制吗?另外,这个浏览器依赖吗?
【问题讨论】:
-
如果您的数据太大以至于这成为一个问题,那么您无论如何都不应该将其存储在 cookie 中。
对 cookie 的大小有任何限制吗?另外,这个浏览器依赖吗?
【问题讨论】:
“官方”的最大大小是 4KB,但我更希望很好保持在这个以下:最多不超过几百字节。
原因是,每个请求都会将 cookie 从客户端传输到服务器 - 即使在请求图像、css 和 js 文件时(如果它们位于同一主机上something you should avoid in general,但是对于小型网站可能不值得费心)。这意味着您将要求客户端为每个请求传输 4KB - 还要记住大多数消费者宽带的上传速度比下载速度慢得多。
【讨论】:
重要的是官方 cookie 规范 RFC 2965 规定了浏览器应遵守的最低要求:
5.3 实施限制 实际的用户代理实施有限制 关于 cookie 的数量和大小 他们可以存储。一般来说,用户 代理的 cookie 支持应该没有 固定限制。他们应该努力 存储尽可能多的常用 cookie 尽可能。此外,通用 用户代理应该提供每个 遵循最低能力 个别,虽然不一定 同时:
- 至少 300 个 cookie
- 每个 cookie 至少 4096 字节(以 包含 cookie 非终端 的语法描述 Set-Cookie2 标头,并在收到 Set-Cookie2 标头)
- 至少 20 每个唯一主机或域名的 cookie
为特定用户创建的用户代理 目的或容量有限 设备应提供至少 20 4096 字节的 cookie,以确保 用户可以与 基于会话的源服务器。
Set-Cookie2 响应中的信息 标头必须保留在其 整体。如果由于某种原因有 存储 cookie 的空间不足, 它必须被丢弃,而不是截断。 应用程序应该使用尽可能少和尽可能 尽可能小饼干,他们 应该从容应对损失 一个cookie。
Microsoft 将 cookie 保存到 “Internet 临时文件”文件夹,一个 可以设置的系统文件夹 最大尺寸(默认为 2% 你的硬盘)。
无论如何,请记住最 cookie 文件是 4KB 或更小,所以 你需要大约一百万个饼干 填满 4GB 驱动器。这是 难以置信。
您会看到4kb limit reference around the internet 以及其他有用的统计信息。
【讨论】:
如果我没记错的话,独立于浏览器。见Can cookies get too big。
【讨论】: