您的位置:首页 > 运维架构 > Tomcat

IE下cookie的version区别与特殊字符支持情况

2010-10-12 10:59 323 查看
网站出现IE下无法自动登录的BUG,经查证,引起此BUG的原因有如下两点:
 
1、  通常使用的cookie分两个版本:
a)         version 0 这个版本被所有浏览器所接受,但是不支持“()<>@,;:///”[]?={} /t”这些特殊符号。
b)         varsion 1 这个版本,支持特殊符号,但是在IE浏览器下,TOMCAT服务器6.0.16及以下版本中,还不被Javax.servlet.http.Cookie包所支持。
 
2、  TOMCAT服务器版本:
a)         TOMCAT服务器是6.0.16以上(不包含)版本,存储含有特殊符号的cookie值时,服务端会自动给cookie值加上双引号再发送给客户端进行存储,
以保证cookie值正常。
b)         当TOMCAT服务器是6.0.16及一下版本时,则不支持含有特殊符号的cookie值,这样的cookie存储在浏览器全部关闭就就会失效。
 
 
目前网站的测试环境跟线上环境,TOMCAT版本都是5.5,所以在IE下设置cookie值时,如果设置了version为1或者cookie中含有特殊符号,
则存储的cookie不管是否设置了失效时间,都会在浏览器关闭后自动失效。
 
建议:存储的cookie值,如果非要使用特殊符号,如进行某些特定的加密算法后出现了特殊符号,可以先进行一遍URLEncode再存储,使用的时候再URLDecode即可。 

 
参考资料:
http://sw1982.javaeye.com/blog/543711
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息