К списку
Web-тестирование и DevToolsMiddleТехническое

Методы установки cookie в браузере и через HTTP-заголовки

Краткий ответ

Cookie устанавливаются с помощью HTTP-заголовка Set-Cookie в ответе сервера либо через JavaScript, присваивая значения свойству document.cookie. В обоих случаях можно задать параметры cookie для контроля их поведения и безопасности.

Развёрнуто

Краткий ответ

Cookie можно создать через HTTP-ответ сервера с заголовком Set-Cookie или программно установить в браузере с помощью JavaScript, изменяя значение document.cookie. В обоих случаях задаются имя, значение и дополнительные атрибуты, влияющие на срок действия, область действия и безопасность cookie.


Как это работает

Установка cookie через HTTP:

Когда сервер отправляет ответ клиенту, он может включить заголовок Set-Cookie, который содержит имя, значение и опциональные атрибуты cookie. Браузер сохраняет cookie и отправляет их обратно на сервер при последующих запросах, если они соответствуют параметрам (домену, пути и т. д.).

Установка cookie через JavaScript:

С помощью document.cookie можно прочитать и изменить cookie на стороне клиента. Для установки нового cookie присваивают строку с форматом имя=значение; атрибуты свойству document.cookie.

Атрибут cookie Назначение
Expires Дата истечения срока действия cookie
Max-Age Время жизни cookie в секундах
Domain Домен, к которому привязан cookie
Path Путь, на котором cookie действует
Secure Отправка cookie только по HTTPS
HttpOnly Запрет доступа к cookie из JavaScript
SameSite Контроль отправки cookie в кросс-доменных запросах

Пример

// Установка cookie через JavaScript
// Создаем cookie с именем user, значением John, сроком жизни 1 день и флагом Secure
const expires = new Date(Date.now() + 86400e3).toUTCString();
document.cookie = `user=John; Expires=${expires}; Path=/; Secure; SameSite=Strict`;
// Пример HTTP-заголовка для установки cookie
Set-Cookie: sessionId=abc123; Max-Age=3600; Path=/; HttpOnly; Secure; SameSite=Lax

Что важно знать на собеседовании

  • HTTP-заголовок Set-Cookie — основной способ установки cookie с сервера.
  • document.cookie позволяет читать и создавать cookie на клиенте, но не изменяет напрямую существующие — он добавляет новые или обновляет.
  • Атрибут HttpOnly защищает cookie от доступа через JavaScript, что важно для безопасности.
  • Атрибут SameSite помогает предотвратить CSRF-атаки, ограничивая отправку cookie в кросс-доменных запросах.
  • Понимать отличие между Expires и Max-Age для контроля времени жизни cookie.

Тема: Web-тестирование и DevTools | Уровень: middle