当前位置:  开发笔记 > 编程语言 > 正文

Web浏览器的cookie密钥的最大大小是多少?

如何解决《Web浏览器的cookie密钥的最大大小是多少?》经验,为你挑选了5个好方法。

Web浏览器的cookie密钥的最大大小是多少?

我知道cookie的最大大小是4KB,但密钥是否也有限制?



1> Iain..:

您阅读的4K限制是针对整个cookie,包括名称,值,到期日期等.如果您想支持大多数浏览器,我建议将名称保持在4000字节以下,并将整体cookie大小保持在4093字节以下.

有一点需要注意:如果名称太大,则无法删除cookie(至少在JavaScript中).通过更新并将其设置为过期来删除cookie.如果名称太大,比如4090字节,我发现我无法设置到期日期.我只关注这个问题,而不是我计划有一个很大的名字.

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


虽然关于这个问题,如果你想支持大多数浏览器,然后不超过每50块域饼干,和每个域4093个字节.也就是说,所有cookie的大小不应超过4093字节.

这意味着您可以拥有1个4093字节的cookie,或2个2045字节的cookie等.


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


4K限制是指特定域下的所有cookie - 因此,当达到此限制时,您可能无法创建新的cookie.
@ulkas:我现在补充说.一旦达到限制,我已经在许多浏览器中观察到您可以创建新的cookie,但它将删除一堆现有的cookie.

2> John Feminel..:

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

请参阅RFC中的第5.3节"实施限制" .


像往常一样,"规范"和"现实世界"似乎完全不同.因为cookie是随着每个http请求发送的,所以实际上是有限的.
如果实际存在限制,这是一个相当无用的规范!不过,这是"正确的"答案!
我不明白为什么浏览器选择不遵循此规范.当localStorage之类的东西已经存在时,我没有理由不能将超过4KB(不是那么多)转储到cookie中.

3> Michael..:

如果应用程序规范允许您(它支持IE8 +),您也可以使用网络存储.

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

" Web存储(第二版) "是API," HTML5本地存储 "是一个快速入门.


这里应该注意的是,使用Web存储的一个警告是,如果没有解决方法,存储在Web存储中的数据只能存储在HTTP或HTTPS上,而不能在它们之间共享(即使对于同一站点).
@ilasno Afaik传统的cookie存在同样的限制.

4> Behnam Moham..:

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

在此输入图像描述


这个确切的表格已更新,可从http://browsercookielimits.squawky.net/获取.
在18-02-2017大声笑回答,但版本已经很久了.
@AjmalPraveen那是因为此答案是从[此站点](http://browsercookielimits.squawky.net/)复制的(尽管您说的是旧版本)。一个来源会很好,所以有兴趣的人可以查看一个最新的来源

5> cgreeno..:

Cookie密钥(用于标识会话)和cookie是以不同方式使用的相同内容.所以限制是一样的.根据微软的4096字节.

MSDN

cookie通常限制为4096字节,每个站点不能存储超过20个cookie.通过将单个cookie与子键一起使用,您可以使用较少的20个cookie来分配您的站点.此外,单个cookie占用大约50个字符用于开销(到期信息等),加上存储在其中的值的长度,所有这些都计入4096字节的限制.如果存储五个子密钥而不是五个单独的cookie,则可以节省单独cookie的开销,并可以节省大约200个字节.


顺便说一句,仅仅因为你有大约4KB的浏览器cookie存储与你玩,你应该认真考虑是否这是一个好主意.
不能同意的更多!
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有