美文网首页
COOKIE长度限制总结

COOKIE长度限制总结

作者: jasonhsu9 | 来源:发表于2018-12-04 12:35 被阅读0次

    没时间可只读下面一句话,深入理解请阅读全文。
    总之,在进行页面cookie操作的时候,应该尽量保证每个域cookie个数小于50个,单条cookie总长度4KB(包阔键和值以及等号)

    Cookie的长度限制分这么几个方面来总结。

    (1) 浏览器所允许的每个域下的最大cookie数目,没有去自己测试,从网上找到的资料大概是这么个情况
    浏览器 允许cookie条数
    IE 原先为20个,后来升级为50个
    Firefox 50个
    Opera 30个
    Chrome 150个
    Safari 无限制

    chrome的150是亲自测试成功的,刚好150条。

    当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。

    浏览器所允许的每个Cookie的最大长度

    Firefox和Safari:4079字节

    Opera:4096字节

    IE:4095字节

    (3) 服务器中Http请求头长度的限制。Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。

    测试一下chrome中允许cookie的最大数量:
    本文的setCookie函数是这篇文章:cookie是什么?cookie的设置/修改/获取/删除 里面定义的。

    此外这篇文章完整总结了cookie在各浏览器的条数限制:HTTP协议对URI长度,POST数据长度及COOKIE长度限制说明

    for (let i = 1; i <= 300; i++) {
        setCookie('cookie' + i, "value" + i, 5);
    }
    

    结果如下:


    cookie.jpg
    let str = '';
    for(let i=1;i<=5000;i++) {
    str += "1";
    setCookie("a",str,5);
    setCookie("b",str,5);
    setCookie("c",str,5);
    setCookie("d",str,5);
    setCookie("e",str,5);
    }
    console.log(document.cookie.length);
    

    上例测试给a,b,c,d,e五个字段设置cookie,每个字段的最终长度都会受到浏览器限制,达不到5000,只能到4059字节。也就是说cookie的总长度=cookie(150)条数 * 每条cookie长度(4059)约为0.58M但是每个浏览器的cookie条数不一样,所以每个浏览器都有自己存储的cookie总长度值。平时只要满足浏览器值的浏览器(IE)就可以满足所有浏览器了

    相关文章

      网友评论

          本文标题:COOKIE长度限制总结

          本文链接:https://www.haomeiwen.com/subject/uycmcqtx.html