Этот вопрос проверяет понимание механизма передачи cookies между клиентом и сервером в HTTP-протоколе, что необходимо для реализации аутентификации, сессий и отслеживания состояния.
Cookies — это небольшие фрагменты данных, которые сервер отправляет браузеру пользователя для хранения и последующей отправки обратно с каждым запросом к тому же домену. Они являются фундаментальным механизмом для поддержания состояния (state) в изначально "бесстатусном" протоколе HTTP.
Сервер устанавливает cookie, добавляя в HTTP-ответ заголовок Set-Cookie. В этом заголовке указывается имя, значение и различные атрибуты cookie, такие как срок жизни (Expires или Max-Age), домен (Domain), путь (Path), флаги Secure и HttpOnly.
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: sessionId=abc123; Expires=Wed, 21 Oct 2025 07:28:00 GMT; HttpOnly; Path=/
Set-Cookie: userPref=darkMode; Max-Age=3600; Secure
<!DOCTYPE html>
...Браузер, получив заголовок Set-Cookie, сохраняет указанные пары "имя-значение". При каждом последующем запросе к домену, путь которого соответствует атрибуту Path cookie, браузер автоматически добавляет в запрос заголовок Cookie, содержащий все соответствующие cookies.
GET /dashboard HTTP/1.1
Host: example.com
Cookie: sessionId=abc123; userPref=darkMode
...Этот механизм широко применяется для управления пользовательскими сессиями (например, хранения идентификатора сессии), персонализации (темы, языковые настройки) и отслеживания аналитики.
Итог: Cookies передаются через заголовки HTTP и являются основным способом сохранения состояния на стороне клиента. Их стоит применять для аутентификации, хранения пользовательских предпочтений и данных сессии, требующих сохранения между запросами.