实测各浏览器cookie的name个数及最大容量限制
作者:
各浏览器的cookie每一个name=value的value值大概在4k;所以4k并不是一个域名下所有的cookie共享的,而是一个name的大小,下面是具体的测试代码,感兴趣的朋友可以参考下哈
测试代码
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的请求就直接的被忽略,没有任何效果
复制代码 代码如下:
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的请求就直接的被忽略,没有任何效果