Назад к вопросам
Junior
73
questionbank

Как работают куки?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Куки – это небольшие фрагменты данных, которые сервер отправляет браузеру клиента и сохраняет на его устройстве. При последующих запросах к тому же серверу браузер отправляет эти куки обратно.

Процесс работы:

  1. Отправка сервером: При первом обращении клиента к веб-приложению, сервер может включить в HTTP-ответ заголовок Set-Cookie. Этот заголовок содержит информацию о куках, которые браузер должен сохранить.
    // Пример заголовка Set-Cookie в HTTP-ответе
    Set-Cookie: sessionid=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT; Secure; HttpOnly
    
    • sessionid=abc123: Имя и значение куки.
    • Expires: Дата и время устаревания куки. Если отсутствует, куки будет сессионной (удаляется при закрытии браузера).
    • Secure: Отправлять куки только по HTTPS.
    • HttpOnly: Запрещает доступ к куки через JavaScript (повышает безопасность).
  2. Сохранение браузером: Браузер получает заголовок Set-Cookie и сохраняет куки в локальном хранилище. Каждая куки связана с определенным доменом и, опционально, путем.
  3. Отправка браузером: При последующих запросах к домену, для которого были сохранены куки, браузер автоматически включает их в HTTP-запрос в заголовке Cookie.
    // Пример заголовка Cookie в HTTP-запросе
    Cookie: sessionid=abc123
    
  4. Обработка сервером: Сервер получает куки из заголовка Cookie и использует их для идентификации клиента, сохранения состояния сессии, персонализации контента и других целей.

Основные атрибуты куков:

Атрибут Описание
Expires Дата и время, когда куки перестанет быть действительной.
Max-Age Максимальный срок жизни куки в секундах. Приоритетнее Expires.
Domain Домен, для которого действительна куки. По умолчанию — текущий домен.
Path Путь в пределах домена, для которого действительна куки.
Secure Отправлять куки только через безопасное соединение (HTTPS).
HttpOnly Запрещает доступ к куки через JavaScript.
SameSite Управляет отправкой куки при межсайтовых запросах (CSRF-защита).

Использование куков:

  • Управление сессиями: Сохранение идентификатора сессии для поддержания состояния пользователя между запросами.
  • Персонализация: Запоминание предпочтений пользователя, например, язык или тема оформления.
  • Отслеживание: Анализ поведения пользователя на сайте (с согласия пользователя).

Ограничения:

  • Ограниченный размер данных (обычно около 4 КБ на куки).
  • Ограниченное количество куков на домен.
  • Могут быть отключены или удалены пользователем.