各浏览器的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的请求就直接的被忽略,没有任何效果

如果你使用的是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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值