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

网站出现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值时,如果设置了version1或者cookie中含有特殊符号,

则存储的cookie不管是否设置了失效时间,都会在浏览器关闭后自动失效。

 

建议:存储的cookie值,如果非要使用特殊符号,如进行某些特定的加密算法后出现了特殊符号,可以先进行一遍URLEncode再存储,使用的时候再URLDecode即可。 

 

参考资料:

http://sw1982.javaeye.com/blog/543711

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值