网络浏览器的cookie密钥的最大大小是多少?
我知道一个cookie的最大大小是4KB,但是密钥也有限制吗?
cookie密钥(用于识别会话)和cookie是相同的东西,只是使用方式不同。所以极限是一样的。根据微软的说法,它是4096字节。
MSDN
cookie通常限制为4096 字节,你不能存储超过20个 每个站点的cookie。通过使用单个 Cookie带有子键,您使用的 你的网站就是这20个cookie 分配。另外,一块饼干 大约50个字符 开销(过期信息和 等等),加上值的长度 你储存在里面的所有东西 计入4096字节限制。如果 存储5个子键而不是5个子键 单独的饼干,你保存 单独的cookie和 可以节省约200字节。
实际上,RFC 2965,定义cookie如何工作的文档,指定了应该有cookie的键或值大小没有最大长度,并鼓励实现支持任意大 cookie。每个浏览器的实现最大值必然是不同的,因此请参考各个浏览器的文档。
参见RFC中的5.3节“实现限制”。
你读到的4K限制是针对整个cookie的,包括名称、值、有效期等。如果您想要支持大多数浏览器,我建议将名称保持在4000字节以下,整个cookie大小保持在4093字节以下。
需要注意的一点是:如果名称太大,就不能删除cookie(至少在JavaScript中是这样)。通过更新cookie并将其设置为过期来删除cookie。如果名称太大,比如4090字节,我发现我无法设置过期日期。我只是出于兴趣才这么做的,并不是说我要有那么大的名气。
要阅读更多关于它,这里是"浏览器Cookie限制"对于普通浏览器。
在这个问题上,如果你想支持大多数浏览器,那么不要超过每个域50个cookie和每个域4093字节。即所有cookie的大小不应超过4093字节。
这意味着您可以有一个4093字节的cookie,或者两个2045字节的cookie,等等。
由于IE7,我曾经说过4095字节,但是现在移动Safari有4096字节,每个cookie有3字节的开销,所以最大4093字节。
如果应用程序规格允许的话,你也可以使用网络存储(它支持IE8+)。
它有5米(大多数浏览器)或10米 (IE)的内存可供使用。
“Web存储(第二版)”是API,“HTML5本地存储”是快速入门。
这不是对原始问题的完全直接回答,但对于那些好奇的人来说,他们可以快速地直观地理解他们的cookie信息存储规划,而无需实现复杂的限制器算法,这个字符串是4096个ASCII字符字节: