会话对象 HttpSession 一、HttpSession原理

我们都知道HTTP是无状态协议,但是为什么session可以跟踪会话状态呢?因为session依赖Cookie。

当客户端第一次访问服务器时,服务器会为客户端创建一个session对象,然后把session对象放到session池中,在响应时把sessionId通过Cookie响应给客户端。注意,只有在第一次访问时,服务器才会创建session,给客户端响应sessionId。

当客户端再次访问服务器时,会在请求中带着sessionId给服务器,服务器通过sessionId到session池中找到session对象,这就可以完成会话跟踪了。也就是说,服务器端保存的是session对象,而客户端只有sessionId。每次访问都需要通过客户端的sessionId来匹配服务器端的session对象!这样用户在session中保存的数据就可以再次被使用了。

sessionId是服务器通过Cookie发送给客户端浏览器的,这个Cookie的maxAge为-1,即只在浏览器内存中存在。如果你关闭所有浏览器窗口,那么这个Cookie就会消失了!

相关推荐
excel10 分钟前
webpack 格式化模块 第 三 节
前端
风象南38 分钟前
SpringBoot实现接口防刷的5种实现方案
java·spring boot·后端
怕冷的火焰(~杰)44 分钟前
虚拟列表react-virtualized使用(npm install react-virtualized)
前端·react.js
云之兕1 小时前
Spring Boot 自动配置原理详解
java·前端·spring boot
烁3471 小时前
每日一题(小白)暴力娱乐篇20
java·开发语言·算法·排序算法·娱乐
好_快1 小时前
Lodash源码阅读-baseSortedIndexBy
前端·javascript·源码阅读
好_快1 小时前
Lodash源码阅读-sortedLastIndex
前端·javascript·源码阅读
heyCHEEMS1 小时前
01背包 Java
java·算法·深度优先
好_快1 小时前
Lodash源码阅读-sortedIndexOf
前端·javascript·源码阅读
好_快1 小时前
Lodash源码阅读-sortedLastIndexOf
前端·javascript·源码阅读