Файлы cookie — технология хранения данных в браузере¶
Файлы cookie (куки, от англ. cookie — «печенье») — небольшие фрагменты данных, которые веб-сайты сохраняют в браузере пользователя для последующего считывания. Технология была предложена в 1994 году программистом Мэком Калманом (Lou Montulli) из компании Netscape и с тех пор стала стандартным механизмом хранения состояния веб-приложений. Cookie используются для аутентификации, сохранения пользовательских настроек, ведения сессий и сбора статистики о поведении посетителей.
¶Принцип работы
HTTP — протокол без состояния: каждый запрос от браузера к серверу обрабатывается независимо, сервер не помнит предыдущие действия пользователя. Cookie решают эту проблему. Механизм работает следующим образом:
- Пользователь запрашивает страницу сайта.
- Сервер в ответном HTTP-заголовке передаёт команду
Set-Cookieс данными (обычно в формате «ключ=значение»). - Браузер сохраняет эти данные в специальном хранилище и при каждом последующем обращении к сайту автоматически добавляет их в заголовок
Cookie. - Сервер считывает cookie и определяет, что запрос приходит от того же пользователя.
Объём одного файла cookie, как правило, не превышает 4 КБ. Хранилище cookie доступно только домену, который их создал, — это правило называется same-origin policy.
¶Виды cookie
Cookie классифицируются по нескольким признакам.
¶По сроку хранения
- Сессионные — удаляются автоматически после закрытия браузера. Обычно хранят идентификатор сессии.
- Постоянные — имеют заданный срок жизни (от нескольких минут до нескольких лет) и сохраняются на диске до истечения этого срока.
¶По происхождению
- Собственные (first-party) — создаются доменом, который посещает пользователь.
- Сторонние (third-party) — создаются доменами, отличными от посещаемого. Чаще всего устанавливаются рекламными и аналитическими системами, встроенными в страницу (баннеры, счётчики). Именно сторонние cookie считаются основным инструментом отслеживания пользователей между сайтами.
¶По назначению
- Технические (строго необходимые) — обеспечивают работу сайта: авторизацию, корзину покупок, защиту от подделки запросов (CSRF).
- Функциональные — сохраняют настройки: язык интерфейса, регион, тему оформления.
- Аналитические — собирают статистику посещений: просмотренные страницы, время на сайте, источник перехода.
- Рекламные (таргетинговые) — формируют профиль интересов пользователя и показывают персонализированную рекламу.
¶Правовое регулирование
В России порядок работы с cookie регулируется Федеральным законом «О персональных данных» № 152-ФЗ. С 1 июля 2021 года вступили в силу поправки, обязывающие операторов получать согласие пользователя на сбор сведений о его местоположении, а также на использование технологий, определяющих местоположение. На практике это привело к массовому появлению на сайтах уведомлений о согласии на использование cookie.
В Евросоюзе деятельность сайтов в отношении cookie регулируется общеевропейским регламентом GDPR и Директивой о электронной конфиденциальности (ePrivacy Directive), которые требуют информированного согласия пользователя на нестрого необходимые cookie. Аналогичные правила действуют в Калифорнии (CCPA) и других юрисдикциях.
¶Ограничения и альтернативы
С ростом критики в адрес таргетинговых cookie крупные технологические компании начали их поэтапный отказ. Apple в браузере Safari ещё в 2017 году включила режим Intelligent Tracking Prevention, блокирующий сторонние cookie. Google объявил о планах отказа от сторонних cookie в Chrome, однако сроки неоднократно переносились; в 2024 году компания объявила, что полностью отказалась от этой затеи в пользу подхода «Privacy Sandbox».
В качестве альтернатив разрабатываются:
- LocalStorage и sessionStorage — хранилища в браузере, не передаваемые на сервер автоматически (объём до 5–10 МБ).
- HTTP-заголовок Authorization — для аутентификации API.
- Токены JWT — самодостаточные подписанные объекты для передачи данных пользователя.
¶Безопасность
Cookie могут быть уязвимы. Если сайт не использует флаг Secure, данные передаются по незащищённому HTTP и могут быть перехвачены. Флаг HttpOnly запрещает доступ к cookie через JavaScript, что защищает от кражи сессии при XSS-атаках. Флаг SameSite ограничивает отправку cookie при межсайтовых запросах, снижая риск CSRF.
¶Применение
Несмотря на критику, cookie остаются основой веб-разработки. Они используются в интернет-магазинах (корзина, оформление заказа), системах электронной почты (поддержание входа), платёжных сервисах (подтверждение операций), локализации сайтов (выбор языка и региона), а также в корпоративных приложениях для управления сессиями.
Источники:
- RFC 6265 — HTTP State Management Mechanism
- Федеральный закон № 152-ФЗ «О персональных данных»
- Montulli L. Http State Management Mechanism. — Netscape Communications, 1994
- Документация W3C по браузерному хранению данных
