浏览器Cookie的键的最大大小是多少?
我知道Cookie的最大大小是4KB,但键是否也有限制?
关于4K的限制,它适用于整个Cookie,包括名称、值、过期日期等。如果您想要支持大多数浏览器,建议将名称保持在4000字节以下,并且整个Cookie大小在4093字节以下。
需要注意的是,如果名称太长,则无法删除Cookie(至少在JavaScript中是这样)。更新Cookie并将其设置为过期来删除Cookie。如果名称太长,比如4090字节,我发现我无法设置到期日期。我只是出于兴趣而研究了这一点,而不是计划使用那么长的名称。
要了解更多信息,请参阅常见浏览器的“浏览器Cookie限制”。
顺便说一句,如果您想要支持大多数浏览器,那么请不要超过每个域50个Cookie和每个域4093字节的限制。也就是说,所有Cookie的大小不应超过4093字节。
这意味着您可以有一个4093字节的Cookie,或者两个2045字节的Cookie等等。
之前我以为4095字节是由于IE7的限制,但现在Mobile Safari采用4096字节,每个Cookie多出3个字节的开销,所以最大为4093字节。
RFC 2965规定了cookie的工作方式,其中明确规定cookie的键或值大小没有最大长度限制,并鼓励实现支持任意大的cookie。每个浏览器的实现最大长度会有所不同,因此请查阅各个浏览器的文档,参见RFC第5.3节“实现限制”。
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
如果应用程序支持(它支持IE8+),您也可以使用Web存储。
它拥有5M(大多数浏览器)或10M(IE)的可用内存。
"Web Storage (Second Edition)"是API,"HTML5本地存储"是快速入门。
一个 cookie key(用于标识会话)和一个 cookie 是同一件事情,只是在不同的方式下使用。因此限制也是相同的。根据微软官方文档 MSDN,限制为4096字节。
通常 cookie 的限制是 4096 字节,每个站点不能存储超过 20 个 cookies。通过使用一个带有子键的单个 cookie,可以减少这些网站允许使用的 20 个 cookies 的数量。此外,单个 cookie 占用大约50个字符的开销(过期信息等),再加上您在其中存储的值的长度,所有这些都计入了4096字节的限制。如果使用五个子键代替五个单独的 cookies,则可以节省单独 cookies 的开销,并且可以节省约200字节。