千家信息网

session一致性的解决方法

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,session一致性的解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是session?服务器为每个用户创建一
千家信息网最后更新 2025年01月23日session一致性的解决方法

session一致性的解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

什么是session?

服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文,这个相关信息就是session。这样,当用户在应用程序的Web页之间跳转时,存储在session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

session是对http无状态协议的补充,达到状态保持的目的

什么是session一致性问题?

假设用户包含登录信息的session都记录在第一台server上,反向代理如果将请求路由到另一台server上,可能就找不到相关信息,而导致用户需要重新登录。

解决方法

1. 客户端保存cookie

  • 优点:

  1. 服务端不需要存储

  • 缺点:

  1. 每次http请求都携带session,占网络带宽

  2. 数据存储在客户端上,并在网络传输,存在泄漏、篡改等安全隐患

  3. session存储的数据大小受cookie限制

由于技术不断演进,客户端保存cookie出现了信息全量cookie,cookie存储sessionId和JWT三种方式,他们优缺点各异,可以点击笔者的另一篇博客查看相关介绍

快速了解会话管理三剑客cookie、session和JWT

2. session复制方法

  • 思路:
    多个server之间相互同步session,这样每个server之间都包含全部的session

  • 优点:

  1. 只需要设定配置,应用程序不需要修改代码

  • 不足:

  1. session的同步需要数据传输,占内网带宽,有延时

  2. 所有server都包含所有session数据,数据量受最小内存的sever限制,水平拓展能力差

3. session中心存储

  • 思路:
    将session存储在server后端的集中式缓存

  • 优点:

  1. 没有安全隐患

  2. 可以水平扩展,支持缓存集群或横向拓展

  • 不足:

  1. 增加了一次网络调用

  2. 需要修改应用代码

4. session会话粘连

session会话粘连:英文原词为"Sticky Sessions"

  • 思路:
    反向代理层让同一个用户的请求保证落在一台server上呢?

  • 方法一:四层代理hash。反向代理层使用用户ip来做hash,以保证同一个ip的请求落在同一个server上(更推荐,保证传输层不引入业务层的逻辑)

  • 方法二:七层代理hash。反向代理使用http协议中的某些业务属性来做hash,例如sid,city_id,user_id等,能够更加灵活的实施hash策略,以保证同一个浏览器用户的请求落在同一个server上

  • 优点:

  1. 只需要改nginx配置,不需要修改应用代码

  2. 可以支持server水平扩展

  • 不足:

  1. server水平扩展,rehash后session重新分布,会有一部分用户路由不到正确的session

  2. 即使hash散列均匀,也不能保证server的负载均匀

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

用户 存储 代理 方法 信息 数据 保证 优点 水平 应用 之间 代码 客户 客户端 思路 网络 传输 支持 一致 一致性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 沈阳新华智原互联网科技学校 软件开发云南工资 为啥手机号显示无服务器 济南天狐网络技术有限公司6 服务器带宽需求 ps42k19连不上服务器 艾尔登法环一直无法登陆服务器 江苏公众号软件开发 广东高科技软件开发网上价格 网络安全工作获肯定 我的世界龙珠服务器怎么去主世界 其他软件开发的行业代码 怎样建立证券数据库 大话西游2豪华服务器 t 安装创建数据库失败 国家网络安全宣传周组委会 管家婆服务器需要多少钱 软件开发公司 系统规范移交 中国移动网络技术工程面试 戴尔服务器r750哪里有卖的 市教育局网络安全周活动方案 ps42k19连不上服务器 c 创建数据库的代码 手机直播软件开发多少钱 攀枝花小程序软件开发 组态王7.5能否连接mysql数据库 熊猫数据库工具 域控服务器如何防护 计算机网络安全用学英语吗 网络安全属于网络公共事件吗
0