Session 会话
跟同一用户关联的一系列网络 HTTP 请求和响应。HTTP 协议本身无状态 —— 服务器收到一个请求时不知道是谁发的。Session 就是把”同一个登录用户的多次请求”绑在一起的机制。
没 Session 会怎样
- 你登录一次,刷新页面又要重登
- 购物车存不住,跳页面就空
- 全网都是匿名,没法做”我的订单”
Session 怎么工作
- 用户登录 → 服务器创建 session,生成 Session ID
- Session ID 通过 Session Cookie 发给浏览器
- 浏览器之后每次请求都带这个 ID
- 服务器根据 ID 找回”这个用户是谁、登录状态、购物车…”
登录 ────→ 服务器: 创建 session,返回 SID=abc123
GET /我的订单 + Cookie: SID=abc123 ────→ 服务器: 啊是 Alice
Session 的生命周期
- 创建 —— 登录或首次访问
- 活跃 —— 用户操作中,定期续期
- 过期 —— 超时(常见 30 分钟无操作)或主动登出
- 销毁 —— 服务器侧删除,即使 ID 泄露也无效
跟安全的关系
Session 是攻击者的金矿 —— 拿到一个活跃 session 等于绕过登录:
- Session Hijacking —— 偷活跃 session
- Session Fixation —— 让受害者用攻击者准备好的 session
- CSRF —— 利用浏览器自动带 cookie