关闭浏览器后Session失效原因分析
参考文章:http://www.tuicool.com/articles/VNbYjqm
首先需要理解一下几点:
1、Http是无状态的,即对于每一次请求都是一个全新的请求,服务器不保存上一次请求的信息
2、Session是保存在服务端的,为什么后续请求会读取到session?因为请求会包含一个sessionId,该值存储在cookie中,服务器通过这个sessionId找到对应的session
3、cookie是有过期时间的,规则如下:
Cookie的Max-Age决定了Cookie的有效期,单位为秒0:Cookie立即作废(如果原先浏览器已经保存了该Cookie,那么可以通过设置Max-Age为0使其失效)<0:默认,表示只在浏览器内存中存活,一旦浏览器关闭则Cookie销毁,浏览器的max-age默认为-1>0: 将Cookie持久化到硬盘上,有效期由Max-Age决定
综上所述:
1、sessionId是一个cookie,max-age默认为-1,即关闭浏览器后sessionId就会清空
2、sessionId(cookie)清空后,自然就无法找到对应的session,所以session就失效了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步