Cookie 与 Session

本文详细解析了Cookie与Session的区别与联系,包括Cookie的瞬时与持久存储方式,以及Session在服务器端的实现机制。同时讨论了如何在客户端关闭后保持Session状态,以及实现定时更新和持久化Cookie的方法,特别关注于自动登录场景下多个客户端共享Session的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  有面试题问 Cookie 与 Session 的联系与区别 。我也简单记录下自己的理解。

Cookie 存储在客户端 分为  瞬时的和永久的  瞬时的就是只为了实现 seesion,  生命周期就是这一次session 周期 ,就比如我打开浏览器,关掉后与之相关的瞬时Cookie  也清除了,这些Cookie 一般存放在内存中 ,而持久的则是为了实现自动登录,往往持久化在硬盘闪。

 

Session 则是 存放在服务器中的KEY-VALUE对,  session 作为标识,  cookie 中存放的也是 sessionid 并且在每次发送请求的时候把 Cookie 发回服务器端,当中就包含这个sessionID

 服务器端通过这个sessionID 就能在 Key-value 对中道相应的 session  。 在支持cookie的浏览器中是这样实现的 如果禁用掉那么就是通过URL 重定向来完成的 ,每次请求到来 会 将sessionid 写在url 后面 重新放完已实现session。 所以静态页面是无法实现session的再不支持 cookie 的情况下。

 

另外需要注意的是 在客户端关闭的时候 只是相当于找不到sessionID了  服务器端 web容器内存中的key-value 并没有删除 ,要等到 session 到期或者其它条件下。

那么web容器中session 怎么实现会比较高效呢?

 

要想实现 session的定时更新,只需要设置定时线程  ,并设置时间戳  ,误差则是线程的启动间隔。

要想实现如两周持续登录的情况下,则需要实现持久Cookie 存放sessionID ,并且WEB容器中Session 需要持续缓存。

 持久化Cookie 的时候如何实现 自动登录 俩客户端共用同一session问题?

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值