Session Cookie 和 Persistent Cookie 的主要区别在于过期时间:
Session Cookie(会话 Cookie)
- 不设置过期时间或过期时间设为 0
- 存储在浏览器内存中
- 当浏览器关闭时自动删除
- 用于临时存储会话信息
- 示例:
Set-Cookie: sessionId=abc123
Persistent Cookie(持久 Cookie)
- 设置明确的过期时间(Expires)或最大生存时间(Max-Age)
- 存储在浏览器硬盘上
- 即使浏览器关闭也会保留
- 用于长期保存用户偏好或登录状态
- 示例:
Set-Cookie: userId=456; Expires=Wed, 09 Jun 2026 10:18:14 GMT
使用场景对比:
- Session Cookie:购物车临时商品、表单临时数据
- Persistent Cookie:记住我功能、用户偏好设置、追踪用户行为
安全考虑:
- 敏感信息应使用 Session Cookie
- Persistent Cookie 应设置合理的过期时间
- 两种 Cookie 都应考虑使用 Secure 和 HttpOnly 标志