1.session,coookie

图解:(概念解释)   访问浏览器时,点击设置➡隐私和安全性设置➡Cookie 及其他网站数据➡查看所有的Cookie和网站数据➡搜索localhost

何为会话状态

客户端与服务端通讯过程中产生的状态信息(类似会议记录),称之为会话状态.

会话状态如何存储(Cookie和Session)

        客户端和服务端通讯时,使用的时http协议,这个协议本身是无状态协议,也就是说通过此协议,无法存储会话状态,此时就在服务端与客户端采用了Cookie和Session的方式记录会话状态

有状态的会话技术分析

一:Cookie:是由服务端创建,客户端存储会话状态的一个对象,此对象分为俩种类型,一种为会话Cookie,一种为持久Cookie,浏览器在访问具体的某个域名时,会携带这个域的有效Cookie到服务端

  1. 会话Cookie: 浏览器关闭Cookie生命周期结束(一般默认都是会话Cookie)
  2. 持久Cookie: 持久Cookie是在Cookie对象创建时指定了生命周期,例如一周时间,即便浏览器关闭,持久Cookie依旧有效

二:Session:有服务端创建,并在服务端存储的一个会话状态的对象,当Session对象创建时,还会创建一个Cookie对象,并且会通过这个会话Cookie将Sessionid写到客户端,客户端下次访问服务端会携带这个会话Cookie,并且通过JsessionId找到Session对象,进而获取Session对象中存储的数据.Cookie默认的生命周期为30分钟 

无状态会话技术分析

有状态的会话实现,在分布式架构中可能会存在很多问题,例如浏览器默认不支持携带其它域的Cookie信息进行资源访问,同时服务端的Session默认不能共享,当然我们有一种方式可以将session持久化到到一些数据库,例如Redis,下次请求到其它服务器(例如tomcat)时,可以直接从redis中获取登录信息,但是假如并发比较大,数据库的访问压力就会剧增,压力太大有可能会导致系统宕机.所以现在还有一种方案就是将用户的登录状态信息都存储在客户端,服务端不记录任何状态,服务端只负责对客户端传递过来的状态信息进行解析,基于此方式进行用户登录状态的判断,这样的会话过程称之为无状态会话.
 

 如果在并发量高(访问数据库次数多)的情况下,以上的图就不适用,这时就需要把登录的状态信息存储在客户端,具体概念和实现可查看https://blog.csdn.net/m0_56773332/article/details/119006721?spm=1001.2014.3001.5502

做详细解释

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值