【发布时间】:2010-10-13 01:26:32
【问题描述】:
网络浏览器的 cookie 密钥的最大大小是多少?
我知道 cookie 的最大大小是 4KB,但是密钥也有限制吗?
【问题讨论】:
-
还要注意:Web 服务器(nginx、IIS、apache,...)都对 HTTP 标头的行长有限制。它们通常限制为 4KB 或 8KB。因此,即使浏览器支持更大的 cookie 标头,如果没有在这些服务器上进行特殊配置,它们也可能无法工作。
网络浏览器的 cookie 密钥的最大大小是多少?
我知道 cookie 的最大大小是 4KB,但是密钥也有限制吗?
【问题讨论】:
cookie 密钥(用于标识会话)和 cookie 是相同的东西,以不同的方式使用。所以限制是一样的。根据微软的说法,它是 4096 字节。
cookie 通常限制为 4096 字节,你不能存储超过 20 每个站点的 cookie。通过使用单个 带有子键的 cookie,你使用更少的 您网站的 20 个 cookie 分配。此外,单个 cookie 占用大约 50 个字符 开销(到期信息,以及 依此类推),加上值的长度 你存储在里面,所有这些 计入 4096 字节的限制。如果 您存储五个子项而不是五个 单独的 cookie,您保存 单独 cookie 的开销和 可以节省大约 200 个字节。
【讨论】:
实际上,定义 cookie 如何工作的文档 RFC 2965 指定 cookie 的键或值大小没有最大长度,并鼓励实现支持任意大 饼干。每个浏览器的实现最大值必然不同,因此请查阅各个浏览器文档。
请参阅the RFC 中的第 5.3 节“实施限制”。
【讨论】:
您读到的 4K 限制是针对整个 cookie 的,包括名称、值、到期日期等。如果您想支持大多数浏览器,我建议将名称保持在 4000 字节以下,并且整体 cookie 大小在 4093 字节以下。
需要注意的一点是:如果名称太大,您将无法删除 cookie(至少在 JavaScript 中)。通过更新 cookie 并将其设置为过期来删除 cookie。如果名称太大,比如 4090 字节,我发现我无法设置到期日期。我只是出于兴趣才研究这个,而不是我打算有这么大的名字。
要了解更多信息,这里是常见浏览器的“Browser Cookie Limits”。
关于这个主题,如果您想支持大多数浏览器,则不要超过 每个域 50 个 cookie,以及 每个域 4093 个字节。即所有 cookie 的大小不得超过 4093 字节。
这意味着您可以拥有 1 个 4093 字节的 cookie,或 2 个 2045 字节的 cookie,等等。
我以前说 4095 字节,因为 IE7,但是现在 Mobile Safari 有 4096 字节,每个 cookie 有 3 字节开销,所以最多 4093 字节。
【讨论】:
如果应用规范允许,您也可以使用 web 存储(它支持 IE8+)。
它有 5M(大多数浏览器)或 10M (IE) 内存供其使用。
“Web Storage (Second Edition)”是 API,“HTML5 Local Storage”是快速入门。
【讨论】:
不完全是对原始问题的直接回答,但对于快速尝试直观了解其 cookie 信息存储计划而不执行复杂限制器算法的好奇者相关,此字符串为 4096 个 ASCII 字符字节:
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmn"
【讨论】: