一、Session原理分析
Session是基于Cookie实现的
- 当客户端第一次请求会话对象时,服务器会创建一个 Session 对象,并为该 Session 对象分配一个唯一的 SessionID (用来标识这个 Session 对象);
- 服务器将 SessionID 以 Cookie(Cookie 名称为:“ JSESSIONID ”,值为 SessionID 的值,如
Set-Cookie:JESSIONID=10
)的形式发送给客户端浏览器; - 客户端浏览器再次发送 HTTP 请求时,会将携带 SessionID 的 Cookie (如
cookie: JESSIONID=10
)随请求一起发送给服务器; - 服务器从请求中读取 SessionID,然后根据 SessionID 找到对应的 Session 对象。
- 在
同一次会话中
,多次请求获取的是同一个Session对象
注意:
- 流程中的 Cookie 是容器自动生成的,它的 maxAge 属性取值为 -1,表示仅当前浏览器有效。
- 浏览器关闭时,对应的 Session 并没有失效,但