会话对象 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就会消失了!

相关推荐
DokiDoki之父1 天前
web核心—Tomcat的下载/配置/mavenweb项目创建/通过mavenweb插件运行web项目
java·前端·tomcat
渣哥1 天前
别乱用!线程池拒绝策略选错,系统可能直接崩!
java
我的div丢了肿么办1 天前
echarts4升级为echarts5的常见问题
前端·javascript·echarts
ChinaRainbowSea1 天前
6. Advisor 对话拦截
java·人工智能·后端·spring·ai编程
自由的疯1 天前
java 各个JSONObject有什么不同
java·后端·架构
ZoeLandia1 天前
Vue 项目 JSON 在线编辑、校验如何选?
前端·vue.js·json
派大星_分星1 天前
nuxt fetch $fetch useFetch 等使用方式区别
前端
龙茶清欢1 天前
4、urbane-commerce 认证请求 DTO 设计规范
java·spring boot·spring cloud·设计规范
快手技术1 天前
兼顾效率和性能!快手低代码平台在大型活动中的技术实践!
前端
WebInfra1 天前
📱开源 AI 工具驱动 iOS 自动化 、接入全新 Qwen 模型 - Midscene v0.29 发布
前端·ios·测试