tomcat组播实现session一致性_探讨Web开发中的Session存储与管理

我们都知道,由于HTTP协议是无状态的协议,一次浏览器和服务器的交互过程就是:

浏览器:你好吗?

服务器:很好!

这就是一次会话,对话完成后,这次会话就结束了,服务器端并不能记住这个人,下次再对话时,服务器端并不知道是上一次的这个人,所以服务端需要记录用户的状态时,就需要用某种机制来识别具体的用户,这个机制就是Session;

服务端如何识别特定的客户?这个时候需要使用Cookie;

每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端,用 Cookie 来实现Session跟踪的,第一次创建Session时,服务端会在HTTP协议中向客户端 Cookie 中记录一个Session ID,以后每次请求时会把这个会话ID发送到服务器,这样服务端就知道客户端是谁了;

那么如果客户端的浏览器禁用了 Cookie 怎么办?

一般这种情况下,会使用一种叫做URL重写的技术来进行session会话跟踪,即每次HTTP请求,URL后面都会被附加上一个诸如 sessionId=xxxxx 这样的参数,服务端据此来识别客户端是谁;

Session会话管理及带来的问题

在Web项目开发中,使用Session来存储与记录用户的状态或者相关的数据;

通常情况下Session交由容器(Tomcat)来负责存储和管理,但是如果项目部署在多台Tomcat中,则Session管理存在很大的问题;

1、多台Tomcat之间无法共享Session,比如用户在Tomcat A服务器上已经登录了,但当负载均衡跳转到Tomcat B时,由于Tomcat B服务器并没有用户的登录信息,Session就失效了,用户就退出了登录;

2、一旦Tomcat容器关闭或重启也会导致Session会话失效;

因此如果项目部署在多台Tomcat中,就需要解决Session共享的问题,有关session共享问题的解决方案。

你可以看看这套教程。

跨域Session共享解决方案|Spring Session视频课程 - 蛙课视频​www.wkcto.com
5c74d58d63dec86e91a5abf20cf86cc3.png

课程目标:通过本课程的学习,解决集群/分布式/跨域环境下的Session共享问题,并将该技术方案应用于公司的实际项目中解决项目的问题,提升自身的技术能力与价值。

适用人群:具有一定Java Web基础和Spring基础的Java开发人员。

课程概述:Spring Session 是Spring家族中的一个子项目,它提供一组API和实现,用于管理用户的session信息,它把servlet容器实现的httpSession替换为spring-session,专注于解决 session管理问题,Session信息存储在Redis中,可简单快速且无缝的集成到我们的应用中;

本课程详细讲解Spring session如何解决集群模式/分布式/跨域环境下,实现session的同步共享问题,是构建大规模应用必须要考虑的一个问题。

66bee3e7f9f559b1549d31f95f5947c2.png

589059c7d120ed213057fb14975ef8b3.png

环境参数:Spring Session 1.3.1、Intellij IDEA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值