HTTP-запрос и ответ

Веб-браузеры взаимодействуют с веб-сайтами по протоколу 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

Инструменты

Узнать больше