RFC 6265: HTTP State Management Mechanismhttps://www.rfc-editor.org/rfc/rfc6265
Set-Cookie 响应头
服务器使用 Set-Cookie
响应头向客户端(通常是浏览器)发送 Cookie。
基本格式:
Set-Cookie: <cookie名称>=<cookie值>; [属性参数]
主要属性参数:
-
Expires=<日期>
- Cookie 过期时间(GMT/UTC 格式) -
Max-Age=<秒数>
- Cookie 有效期(秒) -
Domain=<域名>
- 指定哪些域名可以接收此 Cookie -
Path=<路径>
- 指定域名下哪些路径可以接收此 Cookie -
Secure
- 仅通过 HTTPS 协议发送 -
HttpOnly
- 禁止 JavaScript 访问(防止 XSS 攻击) -
SameSite=<Strict|Lax|None>
- 控制跨站 Cookie 发送行为
示例:
Set-Cookie: user_token=abc123; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Secure; HttpOnly; SameSite=Lax
Cookie 请求头
浏览器使用 Cookie
请求头将之前存储的 Cookie 发送回服务器。
格式:
Cookie: <cookie1名称>=<cookie1值>; <cookie2名称>=<cookie2值>; ...
示例:
Cookie: sessionId=38afes7a8; user_prefs=font_size:large
主要区别
特性 | Set-Cookie | Cookie |
---|---|---|
方向 | 服务器 → 客户端(响应头) | 客户端 → 服务器(请求头) |
用途 | 设置或更新 Cookie | 发送已存储的 Cookie |
出现位置 | HTTP 响应头 | HTTP 请求头 |
数量 | 可多次出现(每个 Set-Cookie 设一个) | 所有 Cookie 合并为一个头字段 |
处理方式 | 浏览器自动处理 | 浏览器自动添加 |