Cookie 是存储在用户浏览器中的小段文本数据,用于跟踪用户的状态和偏好设置。当用户访问网站时,服务器可以设置 Cookie,并将其发送到用户的浏览器。浏览器会将这些 Cookie 保存在本地,并在后续请求中自动将它们发送回服务器。
一、Cookie 的基本概念
(一)什么是 Cookie?
Cookie 是存储在用户浏览器中的小段文本数据,用于跟踪用户的状态和偏好设置。当用户访问网站时,服务器可以设置 Cookie,并将其发送到用户的浏览器。浏览器会将这些 Cookie 保存在本地,并在后续请求中自动将它们发送回服务器。
(二)Cookie 的组成
Cookie 由以下几部分组成:
- 名称(Name):Cookie 的名称,用于标识 Cookie。
- 值(Value):存储在 Cookie 中的数据。
- 过期时间(Expires/Max-Age):Cookie 的有效期。如果未设置,Cookie 将在浏览器关闭时失效。
- 路径(Path):Cookie 适用的路径。默认为设置 Cookie 的路径。
- 域(Domain):Cookie 适用的域名。默认为设置 Cookie 的域名。
- 安全标志(Secure):如果设置为
Secure,Cookie 只会通过 HTTPS 协议发送。 - HttpOnly 标志:如果设置为
HttpOnly,Cookie 无法通过 JavaScript 访问,从而减少 XSS 攻击的风险。 - SameSite 属性:限制 Cookie 的跨站发送,减少 CSRF 攻击的风险。
二、设置与读取 Cookie
(一)设置 Cookie
在服务器端,可以通过 HTTP 响应头设置 Cookie。例如,在 PHP 中:
<?php
setcookie("username", "John Doe", time() + 3600, "/", "example.com", true, true);
?>
在客户端,可以通过 JavaScript 设置 Cookie:
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/; Secure; HttpOnly";
(二)读取 Cookie
在服务器端,可以通过 HTTP 请求头读取 Cookie。例如,在 PHP 中:
<?php
$username = $_COOKIE['username'];
echo $username;


