09-Session原理
1.1 Session 背景信息
服务器状态管理技术,将状态信息保存在服务器端。
是sun公司定义的一个接口。
1.2 Session 工作原理
执行流程:
- 第一次请求,请求头中没有jsessionid的cookie,当访问到对应的servlet资源时,执行到getSession()会创建HttpSession对象;进而响应时就将session的id作为cookie的value,响应到浏览器 Set-cookie:jsessionid=xxxx;
- 再一次请求时,http请求中就有一个cookie:jsessionid=xxxx信息,那么该servlet就可以通过getSession()获取到jsessionid在服务器内查找对应的session对象,有就使用,无就创建。
1.3 Session 创建、获取、销毁
1 |
|
1.4 Session 共享范围
http域对象之一,服务器中可跨资源共享数据。
1 |
|
1.5 Session 生命周期
一般都是默认值 30 分钟,无需更改。
取决于 Tomcat 中 web.xml 默认配置:
1 |
|
Session生命周期结束时机:
- 浏览器关闭:销毁Cookie中的jsessionid=xxx,原session对象会保留默认30min后才销毁,30分钟后为新的session;
- session销毁:主动调用 session.invalidate() 方法后,立即将session对象销毁,再次访问时会创建新的session。
1.6 HTTP请求中 4 大共享数据方式对比
09-Session原理
https://janycode.github.io/2017/05/22/04_网页技术/04_Servlet/09-Session原理/