Cookie 跨越问题

2017-10-25  本文已影响0人  smlrole

思考:做的前后端分离的项目,但是前后端也只是各一个服务器,但是登录是使用了token验证方式,所以就产生了疑问,为什么不用传统的session方式?因为后台只有一个,肯定不会有session不一致问题。但是实践下来,sessionid会丢失,接下来分析一下原因。

Cookie 的原理http://blog.csdn.net/gavin_john/article/details/51352114

再描述一下:

如果不设置过期时间,则该cookie再浏览器关闭时就不存在了,这种生命期为浏览会话期的cookie被称为会话cookie,会话cookie一般不保存在硬盘上而是内存中。存储在硬盘上的cookie可以在不同的浏览器进程间共享,而内存中的cookie,不同的浏览器有不同的处理方式。

Session原理http://blog.csdn.net/gavin_john/article/details/51376364

我所遇到的问题描述:
前后端分离,前段使用nignx部署的静态服务器,后端是java服务器,每次请求时前端都不带Cookie,导致无法识别Session,而且响应的Set-Cookie字段传递的JSESSIONID都不一样:


从图中看出每次http请求并没有自动带上该应用的cookie,这就跟cookie的存储有关系了

Cookie的保存:http://blog.csdn.net/luka2008/article/details/38385703/
cookie保存name:value的同时,会同时保存对应的domain和path
domain告诉浏览器当前要添加的cookie的域名归属,如果没有明确指明则默认为当前域名,比如我访问的地址为http://192.168.1.233:8206/selfmark/list.html ,则domain为192.168.1.233
Path告诉浏览器当前要添加的cookie的路径归属,没有指明则默认为当前路径,以上例子的路径为/selfmark ,

而在请求时,请求的服务器地址为http://192.168.1.229:8206,与刚刚保存的cookie域不一致,所以一直无法匹配到对应的cookie,后台无法获取到sessionid,所以会一直重新生成session,返回新的sessionid。

上一篇 下一篇

猜你喜欢

热点阅读