Session 会话

跟同一用户关联的一系列网络 HTTP 请求和响应HTTP 协议本身无状态 —— 服务器收到一个请求时不知道是谁发的。Session 就是把”同一个登录用户的多次请求”绑在一起的机制。

没 Session 会怎样

  • 你登录一次,刷新页面又要重登
  • 购物车存不住,跳页面就空
  • 全网都是匿名,没法做”我的订单”

Session 怎么工作

  1. 用户登录 → 服务器创建 session,生成 Session ID
  2. Session ID 通过 Session Cookie 发给浏览器
  3. 浏览器之后每次请求都带这个 ID
  4. 服务器根据 ID 找回”这个用户是谁、登录状态、购物车…”
登录 ────→ 服务器: 创建 session,返回 SID=abc123
GET /我的订单 + Cookie: SID=abc123 ────→ 服务器: 啊是 Alice

Session 的生命周期

  • 创建 —— 登录或首次访问
  • 活跃 —— 用户操作中,定期续期
  • 过期 —— 超时(常见 30 分钟无操作)或主动登出
  • 销毁 —— 服务器侧删除,即使 ID 泄露也无效

跟安全的关系

Session 是攻击者的金矿 —— 拿到一个活跃 session 等于绕过登录:

  • Session Hijacking —— 偷活跃 session
  • Session Fixation —— 让受害者用攻击者准备好的 session
  • CSRF —— 利用浏览器自动带 cookie

直接相关:Session IDSession CookieSession Hijacking