session一致性的解决方案
更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 什么是session? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文,这个相关信息就是session。这样,当用户在应用程序的Web页之间跳转时,存储在session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。 session是对http无状态协议的补充,达到状态保持的目的 什么是session一致性问题? 假设用户包含登录信息的session都记录在第一台server上,反向代理如果将请求路由到另一台server上,可能就找不到相关信息,而导致用户需要重新登录。 解决方法 1. 客户端保存cookie 优点: 服务端不需要存储 缺点: 每次http请求都携带session,占网络带宽 数据存储在客户端上,并在网络传输,存在泄漏、篡改等安全隐患 session存储的数据大小受cookie限制 > 由于技术不断演进,客户端保存cookie出现了信息全量cookie,cookie存储sessionId和JWT三种方式,他们优缺点各异,可以点击笔者的另一篇博客查看相关介绍 快速了解会话管理三剑客cookie、session和JWT 2. session复制方法 思路: 多个server之间相互同步session