首页 > 代码库 > 【经验】Cookie个数限制及大小

【经验】Cookie个数限制及大小

各浏览器之间对cookie的不同限制:

 

 IE6.0IE7.0/8.0OperaFFSafariChrome
cookie个数  每个域为20个   每个域为50个  每个域为30个  每个域为50个   没有个数限制   每个域为53个
cookie大小4095个字节4095个字节4096个字节4097个字节4097个字节4097个字节

 

总之,在进行页面cookie操作的时候,应该尽量保证cookie个数小于20个,总大小 小于4KB

虽知Cookie有限制,但未曾详细了解。以下是我遇到的问题,用户莫名其妙的未登录。

 

        就像问卷调查一样,每一道题都对应有一个或多个答案,有时,一套题太长,如300道题。

 

         这么长的题很有必要通过Cookie记录下他答题的答案,方便他下次继续答题。

        原来的做法是,以题号为cookie的key,答案为cookie的value。

        结果测试时,有一套长187道的题无法提交!详细跟踪居然是 未登录 是(苦逼的是查了好久答题的逻辑)

 

 

以下是我根据问题进行的模拟:
技术分享 
 
 
    答题结果是以Ajax方式提交,为了防止提交失败,是在提交成功后才清除Cookie的!
    而在Ajax提交前后,JSESSIONID竟然由 
    “ 63F2103B79B0AEB0307A9CA81D5188FF” 变为 “ A3C497EAA3EF6D56ED29C542328974C2”
 
技术分享 
 

第一次请求是 的 JSESSIONID=63F2103B79B0AEB0307A9CA81D5188FF

 技术分享


由于页面上js的写的Cookie个数过多(内容过长),把服务器写入Cookie中的JSESSIONID给冲没了,而服务器在下一次请求中没能找到JSESSIONID,又重新分配JSESSIONID,故原Session失效,显示未登录!

【经验】Cookie个数限制及大小