各浏览器之间对cookie的不同限制:
IE6.0 | IE7.0/8.0 | Opera | FF | Safari | Chrome | |
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失效,显示未登录!
时间: 2024-10-26 11:34:52