HTTP Cookie是服务器发送到用户浏览器并保存在本地的一小块数据,用于存储用户信息或识别重复访问用户。
Cookie具有以下属性:
- Name:Cookie的名称。
- Value:Cookie的值,用于保存和传输数据。
- Domain:指定可以访问Cookie的域名。如果不指定,默认为当前域。
- Path:指定可以访问Cookie的路径。如果不指定,默认为”/”。
- Expires/Max-Age:Cookie的有效期,在此期间内浏览器会自动发送Cookie。 Expires是绝对时间,Max-Age是相对时间(秒)。
- Secure:指定通过HTTPS发送Cookie。
- HttpOnly:指定Cookie只能通过HTTP(S)发送,不能通过JavaScript获取和设置。
- SameSite:指定第三方网站无法读取Cookie,防止CSRF攻击,可设置为Strict或Lax。
服务器通过Set-Cookie头部发送Cookie,浏览器会在同一域名请求中自动带上此Cookie。这样服务器可以识别用户并保持会话状态。
代码示例:
设置Cookie:
HTTP/1.1 200 OK
Set-Cookie: session=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
浏览器发送Cookie:
GET /profile HTTP/1.1
Host: example.com
Cookie: session=abc123