2017-07-12 10:14:48.0|分类: tomcat|浏览量: 4867
问题: 最近发现了一种怪的现象,google浏览器每次访问域名http://www.cookqq.com 发现JSESSIONID每次都在改变,造成session中保存的临时数据都丢失了,每次获取session中的数据都是返回null!请求头截图如下 请求头没有Cookie:JSESSIONID=77298527E7E0D9399BE582BC896D8BF1。response headers响应中有 Set-Cookie:JSESSIONID=8F8F241D59121184E26D32CB6025FF56; Path=/; Secure; HttpOnly!! 说明:每次请求的时候没有带JSESSIONID,后台接受到请求自动创建一个session,并且将sessionid进行返回!! 为什么cookie没有保存JSESSIONID?? 查看google浏览器-设置-高级-隐私设置一内容设置-所有cookie和网站数据,然后搜索域名cookqq.com, 查看cookie信息如下: 发现域名www.cookqq.com的JSESSIONID参数“仅限安全连接”使用,也就是说https://www.cookqq.com可以使用JSESSIONID,然后http://www.cookqq.com不能使用JSESSIONID。这就是每次访问请求头中没有参数JSESSIONID! 这种现象发生的原因是: 1、用户访问了https://www.cookqq.com, google浏览器保存了JSESSIONID,并且设置了安全权限!! 2、用户再用http://www.cookqq.com,google浏览器发现JSESSIONID只能用于权限连接访问,所以http://www.cookqq.com不能获取到这个JSESSIONID参数!所以每次请求中都没有参数JSESSIONID,后台接受不到参数JSESSIONID,所以会自动再创建一个session 测试http https对JSESSIONID设置访问策略: 1、清楚google浏览器中cookies信息 2、用户先访问http://www.cookqq.com,cookies信息如下: JSESSIONID参数可以用于各种连接 3、用户访问https://www.cookqq.com,发现cookies信息能正常获取到,并且发送到后台!! |