Веб-браузеры взаимодействуют с веб-сайтами по протоколу HTTP . Это стандартизированный набор правил взаимодействия:
- Когда вы посещаете веб-страницу, ваш браузер отправляет HTTP-запросы на ресурсы на странице, такие как HTML, CSS, JavaScript и изображения.
- Когда HTTP-сервер (веб-сервер, на котором размещен веб-сайт) получает допустимый HTTP-запрос от браузера, сервер отвечает браузеру HTTP-ответом .
- Запросы и ответы могут включать дополнительную информацию, известную как HTTP-заголовки .
Например, рассмотрим сайт cats.example.
Запрос
Доступ к странице cats.example
инициирует цепочку запросов к различным доменам. Это включает в себя запрос изображения, размещённого на самом сайте cats.example
, запрос аналитического скрипта из analytics.example
и другие запросы дополнительных ресурсов с других доменов.
HTTP-запросы могут быть дополнены заголовками HTTP-запросов для передачи дополнительной информации от браузера веб-серверу. Например, часто используются следующие заголовки:
-
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» (версия браузера).
Ответ
Когда веб-сервер получает корректный запрос от браузера, он отправляет браузеру ответ, содержащий запрошенный ресурс («полезную нагрузку»): HTML, CSS, JavaScript, файл изображения, видео или другие данные. Подобно тому, как каждый запрос от браузера может включать заголовки запроса , каждый ответ от сервера может включать заголовки ответа . Эти заголовки ответа отправляются вместе с полезной нагрузкой.
Заголовок Set-Cookie
включенный в ответ, указывает браузеру сохранить текст: имя и значение. Это называется HTTP-cookie. В ответ на запрос cats.example/images/cat.jpg
сервер cats.example
добавляет заголовок Set-Cookie:cat=tabby
. Это указывает браузеру сохранить cookie с именем cat и значением tabby.
Этот cookie-файл будет затем включаться в последующие запросы к cats.example,
до истечения срока его действия или до его удаления . Это позволяет серверу сохранять информацию о пользователе на разных веб-страницах или в разных сеансах: например, о том, что пользователю было показано изображение полосатой кошки.
Заголовок | Действие | Пример | Эффект | |
---|---|---|---|---|
HTTP-ответ Сервер в браузер | Set‑Cookie | Веб-сервер просит ваш браузер сохранить cookie-файл. | Set‑Cookie:cat=tabby | Файл cookie сохраняется в вашем браузере и передается в последующих запросах к серверу, который его установил. |
HTTP-запрос Браузер на сервер | Cookie | Ваш браузер использует cookie-файл. | Cookie:cat=tabby | Файл cookie становится доступным серверу, на который направлен запрос. |
Демо-версии
- 1pc.glitch.me : демо-версия cookie-файлов от первого лица
- 3pc.glitch.me : демонстрация сторонних файлов cookie
Инструменты
- Просмотр, добавление, редактирование и удаление файлов cookie в Chrome DevTools
- Инструмент анализа конфиденциальной песочницы
Узнать больше
- Что такое куки?
- Атрибуты cookie-файлов
- Что такое сторонние файлы cookie?
- Инструменты для работы с файлами cookie
- Демо-версии файлов cookie
- Использование HTTP-куки