Web 浏览器通过遵循 HTTP 协议与网站互动。这是一套标准化的沟通规则:
- 当您访问网页时,浏览器会针对网页上的资源(例如 HTML、CSS、JavaScript 和图片)发送 HTTP 请求。
- 当 HTTP 服务器(托管网站的 Web 服务器)收到来自浏览器的有效 HTTP 请求时,服务器会向浏览器发送 HTTP 响应。
- 请求和响应可以包含称为 HTTP 标头的额外信息。
例如,假设某个网站为 cats.example.

请求
访问 cats.example
页面会启动对各种网域的一系列请求。这包括对 cats.example
本身托管的图片的请求、对 analytics.example
中分析脚本的请求,以及对其他网域中其他资源的请求。
HTTP 请求可以通过 HTTP 请求标头进行扩充,以便将补充信息从浏览器提供给 Web 服务器。例如,通常会包含以下标头:
Accept-Language: en-US
此标头表示用户的首选语言,在本例中为英语(美国)。User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
此标头提供有关用户浏览器和操作系统的详细信息, 在本例中为“Mozilla/5.0”(浏览器系列)、“Macintosh”(操作系统) 和“Chrome/127.0.0.0”(浏览器版本)。
响应
当 Web 服务器收到来自浏览器的有效请求时,服务器会向浏览器发送响应,其中包含所请求的资源(“载荷”):HTML、CSS、JavaScript、图片文件、视频或其他数据。与浏览器发出的每个请求都可以包含请求标头一样,服务器发出的每个响应都可以包含响应标头。这些响应标头会随载荷一起发送。
响应中包含的 Set-Cookie
标头会指示浏览器存储一些文本:名称和值。这称为 HTTP Cookie。为响应对 cats.example/images/cat.jpg
的请求,cats.example
服务器包含标头 Set-Cookie:cat=tabby
。这会指示浏览器存储一个名为 cat 且值为 tabby 的 Cookie。
然后,该 Cookie 将包含在后续对 cats.example,
的请求中,直到该 Cookie 过期或被移除为止。这样一来,服务器就可以在多个网页或会话中保留有关用户的信息,例如用户已看到过一只虎斑猫的图片。
标题 | 操作 | 示例 | 效果 | |
---|---|---|---|---|
HTTP 响应 服务器到浏览器 |
Set‑Cookie
|
网络服务器要求浏览器存储 Cookie。 | Set‑Cookie:cat=tabby |
该 Cookie 由您的浏览器存储,并在后续向设置该 Cookie 的服务器发出的请求中提供。 |
HTTP 请求 浏览器到服务器 |
Cookie |
您的浏览器会提供 Cookie。 | Cookie:cat=tabby |
该 Cookie 可供请求的目标服务器使用。 |
演示
- 1pc.glitch.me:第一方 Cookie 演示
- 3pc.glitch.me:第三方 Cookie 演示