您的位置:首页 > 其它

各浏览器的cookie的name个数/最大容量限制测试

2015-05-01 09:58 567 查看
测试代码:

for(var ii = 0; ii< 5000;ii++){
if (!window.ia) window.ia=0;
window.ia++;
var s = 'a'+window.ia+'=';
for (var i = 0; i < 4000;i++) s+='' +parseInt(Math.random()*10);
s+= ';';
//alert(s.length);
document.cookie =  s;
}


经过测试(ie10,firefox22,chrome)

各浏览器的cookie每一个name=value的value值大概在4k;所以4k并不是一个域名下所有的cookie共享的,而是一个name的大小;

而对于name的个数的限制,发现ie10大概是50个,如果超过了50个,前面的你这个进程(js?php?感觉应该是这样)设置的最前面设置的就会挨删除把新的放进去.当出现这种溢出替换的过程时,就会导致当前进程的ie的这个域名无法访问,需要重启浏览器才行;所 以对于name的个数可以按照ie的来定即可,其它浏览器倒没有限制,(500+还可以放);

而对于限制4k大小的限制时,保存cookie的请求就直接的被忽略,没有任何效果

如果你使用的是windows系统,那么请打开C:\Documents and Settings\用户名\Cookies

下面看看这些限制:

一、一个域名下可以有多少个cookie

firefox 3.6可以存150个cookie

ie6最多有50个cookie

二、当超过cookie最大个数时,浏览器如何响应

firefox 3.6 剔除最老的设置新的

ie6 剔除最老的设置新的

三、一个cookie最大字符数

firefox 3.6 4097字节,包括name、等于号、value

ie6 4096字节,包括name、等于号、value

注意:以前一直理解为value有大小限制

四、一个cookie的value超过字符限制,浏览器如何处理

firefox 3.6 超过字符限制就不设置

ie6 超过字符限制也会设置,但取不到值

简单测试下,纠正了我对cookie的两个错误:

1. 网上流传一个域名最多可以有20个cookie

2. cookie内容最多为4096个字节

cookie使用总结:

1. 尽量让cookie的权限范围小,能子域可见domain绝不设为主域

2. 所有页面有效的cookie,失效时间够用就好,别设太长,免得每个请求都带一些无用的cookie
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: