2019-11-01 HTTP协议中cookie没有在request中被传递

HTTP协议中cookie没有在request中被传递


在联调环境中,前后端交互用的HTTP协议,发现服务器明明向客户端写了COOKIE,而且浏览器也没有禁用COOKIE,但是从浏览器再访问服务器,Cookie不会传到服务器。
而在生产环境中,前后端交互用的HTTPS协议,就不存在这个问题。

因为设置了cookie.setSecure(true);
true意味着"指示浏览器仅通过 HTTPS 连接传回 cookie。这可以确保 cookie ID 是安全的,且仅用于使用 HTTPS 的网站。如果启用此功能,则 HTTP 上的会话 Cookie 将不再起作用。

关于setSecure的问题,在http连接下:
当setSecure(true)时,浏览器端的cookie会不会传递到服务器端?
当setSecure(true)时,服务器端的cookie会不会传递到浏览器端?
答案:1)不会 ; 2)会

原理:服务器端的Cookie对象是java中的对象,请不要和浏览器端的cookie文件混淆了。服务器端的Cookie对象是方便java程序员包装一个浏览器端的cookie文件。一旦包装好,就放到response对象中,在转换成http头文件。在传递到浏览器端。这时就会在浏览器的临时文件中创建一个cookie文件。
但我们再次访问网页时,才查看浏览器端的cookie文件中的secure值,如果是true,但是http连接。这个cookie就不会传到服务器端。当然这个过程对浏览器是透明的。其他人是不会知道的。

总结如下:cookie的secure值为true时,在http中是无效的;在https中才有效。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值