Открыть сервисСервис

Куки (файлы cookie)

Куки (cookie, файлы cookie, по-русски часто «печенье») — небольшие фрагменты данных, которые веб-сервер или веб-страница отправляет браузеру пользователя, а браузер сохраняет на устройстве и передаёт обратно при каждом последующем обращении к тому же сайту. Куки являются основным механизмом хранения состояния в протоколе HTTP, который сам по себе является протоколом без состояния (stateless).

История

Технология куки была предложена в 1994 году инженером компании Netscape Марком Андрисенем (в некоторых источниках — Лу Монтульи, работавшим над первым браузером Mosaic). Идея заключалась в необходимости сохранять содержимое «корзины покупок» в интернет-магазине: сервер должен был как-то узнавать повторного посетителя. Термин «cookie» происходит от терминологии программирования — «magic cookie», обозначающей пакет данных, который передаётся без изменений. Первым браузером с поддержкой куки стал Netscape Navigator 1.0 (1994). Вскоре аналогичная функциональность появилась в Internet Explorer, и куки стали де-факто стандартом Всемирной паутины.

Принцип работы

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

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

  • Имя и значение — собственно данные (строки длиной обычно до 4 КБ).
  • Домен — определяет, к каким сайтам куки будет отправляться.
  • Путь — часть URL, к которой относится куки.
  • Срок действия (Expires / Max-Age) — дата или интервал, после которого куки удаляется.
  • Флаг Secure — отправлять только по HTTPS.
  • Флаг HttpOnly — запретить доступ к куки через JavaScript (защита от XSS).
  • SameSite — ограничение отправки куки при переходах с других сайтов (защита от CSRF).

Виды куки

По способу хранения

  • Сессионные (временные) — удаляются при закрытии браузера.
  • Постоянные (persistent) — хранятся на диске до истечения срока действия.

По источнику

  • Собственные (first-party) — устанавливаются самим сайтом, который посещает пользователь.
  • Сторонние (third-party) — устанавливаются доменом, отличным от посещаемого. Обычно используются рекламными и аналитическими сервисами для отслеживания пользователя между разными сайтами. Именно сторонние куки являются основным объектом критики технологии.

Применение

Куки выполняют множество функций:

  • Аутентификация — хранение сессий после входа в учётную запись.
  • Сохранение настроек — язык интерфейса, тема оформления, региональные параметры.
  • Корзина покупок — содержимое корзины в интернет-магазинах.
  • Аналитика — сбор статистики посещений (Google Analytics и аналоги).
  • Реклама и ретаргетинг — показ рекламы с учётом интересов пользователя.
  • Безопасность — хранение одноразовых токенов, защита от CSRF.

Приватность и регулирование

Сторонние куки позволяют отслеживать пользователя между десятками сайтов, формируя профиль интересов и поведения. Это вызывает серьёзные опасения в отношении приватности. В Евросоюзе обработка персональных данных, включая идентификаторы в куки, регулируется обобщённым регламентом по защите данных (GDPR, 2018), а также директивой о электронной коммерции: использование необязательных куки требует явного согласия пользователя.

В России сбор персональных данных, которые могут передаваться через куки, регулируется Федеральным законом № 152-ФЗ «О персональных данных». Популярные сайты, работающие в РФ, обязаны уведомлять Роскомнадзор о намерении обрабатывать персональные данные.

В США действуют отдельные законы в штатах Калифорния (CCPA) и Виргиния (VCDPA), требующие от сайтов информирования пользователей и предоставления возможности отказаться от отслеживания.

Отказ от сторонних куки

С 2020-х годов крупные производители браузеров постепенно отказываются от сторонних куки:

  • Safari (Apple) — ограничение сторонних куки внедрено в 2017–2020 годах (Intelligent Tracking Prevention).
  • Firefox (Mozilla) — сторонние куки заблокированы по умолчанию с 2022 года.
  • Google Chrome — объявил о планах отказа от сторонних куки, однако сроки неоднократно переносились; в 2024 году компания объявила об отказе от планов полного удаления в пользу подхода, позволяющего пользователю управлять настройками.

Вместо сторонних куки разрабатываются альтернативы: Google Topics API, Privacy Sandbox, а также технологии на основе серверных идентификаторов.

Технические ограничения

Браузеры ограничивают количество куки на домен (обычно 50 штук) и общий объём (около 4 КБ на куки и 40 КБ на домен). При превышении лимитов старые куки удаляются. Также существуют ограничения на глубину вложенных поддоменов — куки не может быть установлен для TLD вроде .ru или .com.

Альтернативы

Помимо куки, для хранения состояния в браузерах используются:

  • localStorage и sessionStorage — Web Storage API, хранение данных на стороне браузера без отправки на сервер.
  • IndexedDB — полноценное клиентское хранилище структурированных данных.
  • Токены JWT — часто передаются в заголовке Authorization вместо куки.

Однако Web Storage не отправляется автоматически на сервер, поэтому куки остаются основным механизмом серверной аутентификации и отслеживания.

Источники:

  • RFC 6265 — HTTP State Management Mechanism
  • Документация MDN Web Docs по HTTP cookies
  • История Netscape Navigator и веб-браузеров
  • GDPR (Regulation (EU) 2016/679)
  • Федеральный закон РФ № 152-ФЗ «О персональных данных»
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru