Files
Sec-Interview/_book/Chapter7/7-46.md
T
2025-11-08 21:00:06 +08:00

18 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### session 的工作原理
**Session 的基本工作流程**
Session 的核心思想是:将用户的状态信息存储在**服务器端**,而客户端(浏览器)只存储一个**唯一标识符**
1. **用户初次访问**:当用户第一次访问 Web 应用时,服务器会执行以下操作:
- **创建 Session 对象**:在服务器端为这个新用户创建一个 Session 对象
- **生成唯一标识符**:为这个 Session 对象生成一个唯一的 ID,通常称为 **Session ID**
- **存储状态信息**:可以将用户的登录状态、购物车内容等信息存入这个 Session 对象
- **发送 Session ID**:将 Session ID 作为响应的一部分,发送给浏览器。通常,这个 Session ID 会被嵌入在 **Cookie** 中,名字可能类似于 `JSESSIONID`
2. **浏览器存储 Session ID**
- 浏览器接收到服务器的响应后,会将这个包含 Session ID 的 Cookie 存储起来
3. **用户后续访问**:当用户再次访问同一 Web 应用时,浏览器会自动在请求头中带上之前存储的 Session ID Cookie
4. **服务器识别用户**
- 服务器接收到请求后,会从请求头中解析出 Session ID
- 服务器根据这个 Session ID,在服务器端的 Session 存储中找到对应的 Session 对象
- 这样,服务器就能识别出是哪个用户在操作,并获取其之前的状态信息(例如,用户已经登录)