什么是networking浏览器的cookie的最大大小?

什么是networking浏览器的cookie的最大大小?

我知道一个cookie的最大尺寸是4KB,但是密钥是否也有一定的限制?

您所读取的4K限制是针对整个cookie,包括名称,值,到期date等。如果您要支持大多数浏览器,build议将名称保留在4000字节以下,并将整体Cookie大小保持在4093字节以下。

有一件事要小心:如果名字太大,你不能删除cookie(至less在JavaScript中)。 通过更新cookie并将其设置为过期来删除cookie。 如果名字太大,说4090字节,我发现我不能设置到期date。 我只是出于兴趣考虑这一点,并不是说我打算有一个很大的名字。

要了解更多信息,请参阅常见浏览器的“ 浏览器Cookie限制 ”。


虽然在这个问题上,如果你想支持大多数浏览器,那么每个域不要超过50个cookie,每个域不要超过4093个字节 。 也就是说,所有cookie的大小不应该超过4093字节。

这意味着你可以有1个4093字节的cookie,或者2045字节的2个cookie等等。


由于IE7,我曾经说过4095个字节,但是现在移动版Safari带有4096个字节,每个cookie有3个字节的开销,所以最多4093个字节。

实际上,RFC 2965(定义cookie如何工作的文档)指定不应该有最大长度的cookie的密钥或值的大小 ,并鼓励实现支持任意大的 cookie。 每个浏览器的实现最大值必然会有所不同,因此请查阅各个浏览器文档。

请参阅RFC中的第5.3节“实现限制”。

你也可以使用networking存储,如果应用程序规范允许你(它支持IE8 +)。

它拥有5M (大多数浏览器)或10M (IE)内存。

“ Web存储(第二版) ”是API和“ HTML5本地存储 ”是一个快速入门。

在自己testing几个浏览器并使用浏览器镜头之后,我编译了以下列表

在这里输入图像描述

一个cookie密钥(用于标识一个会话)和一个cookie是以不同的方式使用的。 所以限制是一样的。 据微软称其4096字节。

MSDN

Cookie通常限制在4096个字节,每个站点不能存储超过20个Cookie。 通过使用带有子密钥的单个Cookie,您可以使用分配给您网站的20个Cookie中的更less。 另外,一个cookie会占用大约50个字符的开销(到期信息等等),再加上您存储在其中的值的长度,所有这些都会计入4096字节的限制。 如果您存储五个子键而不是五个单独的Cookie,则可节省单独的Cookie的开销,并可节省大约200个字节。