什么是HTTP Cookie?它有哪些属性?代码举例讲解

HTTP Cookie是服务器发送到用户浏览器并保存在本地的一小块数据,用于存储用户信息或识别重复访问用户。

Cookie具有以下属性:

  1. Name:Cookie的名称。
  2. Value:Cookie的值,用于保存和传输数据。
  3. Domain:指定可以访问Cookie的域名。如果不指定,默认为当前域。
  4. Path:指定可以访问Cookie的路径。如果不指定,默认为”/”。
  5. Expires/Max-Age:Cookie的有效期,在此期间内浏览器会自动发送Cookie。 Expires是绝对时间,Max-Age是相对时间(秒)。
  6. Secure:指定通过HTTPS发送Cookie。
  7. HttpOnly:指定Cookie只能通过HTTP(S)发送,不能通过JavaScript获取和设置。
  8. 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