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

Куки (файлы cookie) на сайтах

Куки (cookie, от англ. cookie — «печенье») — это небольшие фрагменты данных, которые веб-сайт сохраняет в браузере посетителя для последующего считывания. Технически куки представляют собой текстовые файлы или записи в памяти браузера, содержащие пары «имя — значение». Механизм был предложен программистом Марком Лоуландом (Lou Montulli) в 1994 году для компании Netscape и с тех пор стал стандартным способом хранения состояния веб-сессий.

Зачем сайту куки

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

Основные функции куки:

  • Авторизация. После ввода логина и пароля сервер создаёт сессионный идентификатор и передаёт его браузеру в виде куки. При последующих переходах браузер автоматически отправляет этот идентификатор серверу, и пользователь не вводит пароль на каждой странице.
  • Сохранение настроек. Язык интерфейса, выбранный регион, размер шрифта, тёмная или светлая тема — всё это может храниться в куки.
  • Корзина интернет-магазина. Товары, добавленные в корзину, сохраняются в куки или в серверной сессии, связанной с куки-идентификатором.
  • Аналитика. Куки позволяют подсчитывать уникальных посетителей, отслеживать просмотренные страницы и глубину просмотра.
  • Реклама. Куки используются для формирования профиля интересов пользователя и показа релевантной рекламы, а также для ограничения частоты показов.

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

Механизм взаимодействия браузера и сервера с куки выглядит следующим образом:

  1. Пользователь открывает страницу, браузер отправляет HTTP-запрос на сервер.
  2. Сервер в ответном заголовке Set-Cookie передаёт данные, которые нужно сохранить (например, session_id=abc123).
  3. Браузер сохраняет эти данные в своём хранилище и привязывает их к домену сайта.
  4. При каждом последующем запросе к тому же домену браузер автоматически добавляет заголовок Cookie с сохранёнными парами «имя — значение».
  5. Сервер считывает нужные значения и восстанавливает контекст: авторизацию, настройки, содержимое корзины.

Куки могут содержать только текстовые данные. Их объём жёстко ограничен — как правило, до 4 КБ на одну запись, а суммарное количество куки на домен не должно превышать 50 штук.

Виды куки

ТипВремя храненияНазначение
СессионныеДо закрытия браузераХранят состояние текущей сессии (например, идентификатор авторизации)
ПостоянныеЗаданный срок (от минут до лет)Запоминают настройки, предпочтения, идентификаторы аналитики
Сторонние (third-party)Заданный срокУстанавливаются доменами, отличными от открытого сайта (чаще всего рекламными и аналитическими сетями)
Обязательные (strictly necessary)Сессионные или постоянныеБез них сайт не может функционировать (авторизация, безопасность, корзина)

Сторонние куки считаются наиболее проблемными с точки зрения приватности: они позволяют рекламным и аналитическим компаниям отслеживать поведение пользователя на разных сайтах, формируя единый профиль.

Куки и приватность

Использование куки для отслеживания пользователей вызывает обсуждения о защите персональных данных. В ряде юрисдикций приняты законы, обязывающие сайты уведомлять посетителей об использовании куки и получать согласие на необязательные категории.

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

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

Управление куки в браузере

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

  • просматривать список сохранённых куки и удалять их вручную;
  • блокировать сторонние куки целиком;
  • автоматически удалять куки при закрытии браузера;
  • настраивать правила для отдельных сайтов (разрешать, блокировать, ограничивать по времени).

Полная блокировка всех куки возможна, но приводит к деградации функциональности многих сайтов: без куки не работает авторизация, сохранение настроек и корзина.

Куки и JavaScript

Помимо серверных куки, устанавливаемых через заголовок Set-Cookie, существуют куки, доступные из JavaScript через свойство document.cookie. Такие куки применяются для клиентской аналитики и хранения состояния интерфейса. Разработчики могут ограничивать доступ к куки с помощью атрибутов HttpOnly (недоступны из JavaScript, повышают защиту от кражи сессии) и Secure (передаются только по HTTPS).

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

В связи с постепенным отказом браузеров от сторонних куки (Chrome, Firefox и Safari ограничили их использование) разрабатываются альтернативные механизмы идентификации пользователей: Privacy Sandbox от Google, серверные идентификаторы, хранящиеся на стороне издателя, и другие технологии.

Интересные факты

  • Название «cookie» происходит от термина «magic cookie» из UNIX-программирования — пакета данных, передаваемого между программами без изменения его содержимого.
  • Первоначально куки планировались как временный механизм хранения «корзины покупок» в электронном магазине Netscape.
  • В 2001 году куки стали объектом судебного разбирательства в США: компания DoubleClick была обвинена в объединении данных из сторонних куки с личной информацией, что привело к ужесточению отраслевых стандартов.

Источники

  • RFC 6265 — HTTP State Management Mechanism
  • Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»
  • Lou Montulli. The State of Cookie Usage, 1995
  • Роскомнадзор. Методические рекомендации по обработке персональных данных
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru