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
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
相关文章推荐
- IE下COOKIE失效的一种特殊情况
- 让python cookie支持特殊字符
- Jquery的validate,清除form方法,显示密插件,正则特殊字符处理,js的call用法,ajax,h5支持情况,elclipse tomcate去掉项目名,js 的原型
- 不要在cookie中使用特殊字符的原因分析
- 简短生成随机密码~支持特殊字符
- smb 连接判断文件夹是否存在,登陆密码含有特殊字符的情况
- css和js支持ie却不支持火狐的情况
- cookie特殊字符在游览器被转义
- css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
- VS.Net IDE 与 csc.exe 各自生成的 exe 在某些特殊情况下竟然有区别?!
- CSS选择器IE支持情况汇总
- IE 和 Chrome 对日期 new Date() 支持的区别
- css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
- 地址栏(get方式)传值不能不说的秘密-当传递的值中含某些特殊字符的情况
- 不要在cookie中使用特殊字符的原因分析
- 文档的当前编码不能保存文档内所有字符,需要改为UTF-8或者其他支持本文当中的特殊字符的编码
- 创建数据库时使其支持汉语和特殊字符
- 前台js escape及后台C# Server.UrlEncode 对QueryString传参的含~!@#$%^&*等特殊字符的处理 通常情况下,我们在List列表页面,会包含Create,Edit
- 从Cookie 中取出来对特殊字符的转换
- firefox与ie获取cookie因服务器时区的区别