Что такое cookie (куки) и зачем они нужны

Ответы, которые вы всегда хотели узнать, но боялись куки

Что такое cookie (куки) и зачем они нужны

Если вы зашли в соцсеть, потом выключили компьютер, включили и снова зашли, то второй раз пароль у вас, скорее всего, соцсеть не спросит. Потому что она оставила в вашем компьютере куки и теперь пользуется этим. То же самое с корзинами в интернет-магазине, которые помнят неделями, что вы туда положили, даже если не регистрировались.

Рассказываем, как работает эта технология и почему в какой-то момент она начала всех бесить.

Что такое cookie (куки)?

Куки — это русское произношение английского cookie, которое переводится как «печенье». В ИТ-мире куки — это маленький файл с данными, который хранится у вас на компьютере. Обычно в нём хранят данные о том, был ли уже пользователь на этом сайте, и если да — то под каким именем и что там делал.

Определение простыми словами 

Куки можно сравнить с запиской, которую сайт оставляет в вашем браузере, чтобы потом узнать вас при следующем визите. Вы зашли в интернет-магазин, добавили кроссовки в корзину, закрыли вкладку. А через пару часов вернулись — и товары в корзине на месте. Это всё из-за куки.

Если говорить более формально: cookie — это небольшой текстовый файл, который сайт сохраняет в браузере. В нём могут храниться логин, настройки языка, содержимое корзины или просто отметка: «Этот пользователь уже был у нас, вот его ID».

Куки не являются программами и ничего не делают сами. Это просто данные. Когда вы снова заходите на сайт, браузер отправляет эти данные обратно — и сайт вас узнаёт.

Почему их называют «куки»?

В 70-х годах в программировании уже существовало понятие magic cookie — это был небольшой фрагмент данных, который передавался между частями программы и помогал, например, подтвердить авторизацию.

Почему именно «печенье»? Точно неизвестно. Есть версии, что это просто шутка программистов, у которых тогда было настроение назвать фрагмент данных в честь сладкого ¯\_(ツ)_/¯

В 1994 году разработчик Лу Монтулли из Netscape предложил использовать такую же идею — только уже в вебе. Так появились HTTP cookies: маленькие текстовые файлы, которые помогают сайтам узнавать пользователей и сохранять их настройки между посещениями. Название cookie закрепилось, и теперь такое «печенье» есть в каждом браузере.

Как работают cookie?

Куки — это данные, которые сайт сохраняет в браузере, чтобы помнить пользователя между запросами. Разберёмся, как всё это происходит под капотом — от заголовков до хранения на клиенте.

Технический принцип работы (HTTP-заголовки, хранение данных)

Когда вы заходите на сайт, всё начинается с обычного HTTP-запроса. Примерно вот так:

GET /index.html HTTP/1.1
Host: thecode.media

Сервер отвечает страницей и заодно пихает в заголовок ответа строку вида:

Set-Cookie: user_id=12345; Expires=Wed, 01 Jan 2026 00:00:00 GMT; Path=/

HTTP-заголовок Set-Cookie — это и есть команда браузеру: «Сохрани вот эту куку с таким-то ID, её срок жизни до 2026 года, и она нужна на всех страницах сайта». Браузер сохраняет куку локально — и при следующем запросе к тому же домену сам добавляет:

Cookie: user_id=12345

Сервер смотрит на этот заголовок и понимает: «Ага, это тот самый юзер 12345, он уже был у нас». И теперь сервер может вернуть персонализированную страницу: имя, корзину, язык — всё что угодно.

Как работают куки в HTTP. Источник: sumontasaha80.medium.com

Хотя куки — это просто текст, в большинстве случаев вы не увидите в них ничего человекочитаемого. Чаще всего это зашифрованные или закодированные значения: длинные строки из цифр и символов.

Так что если заглянете в инструменты разработчика, посмотрите файл куки и ничего не поймёте — это нормально. Смысл этой строки понимает только сайт, который её поставил.

Какие данные хранят куки

Основная задача — помогать сайтам запоминать о вас какую-то информацию. Поэтому в куки обычно кладут:

  • Токены авторизации. Чтобы не заставлять вас вводить пароль каждый раз.
  • Настройки интерфейса. Например, выбранный язык, тёмная тема или размер шрифта.
  • Содержимое корзины.
  • Время последнего посещения. Когда вы были на сайте, сколько времени провели, какие страницы открывали. 
  • Идентификаторы пользователя. Часто это просто уникальный код, по которому вас узнают — user_id=abc123.

Такой набор данных помогает рекламодателям отслеживать сайты, которые вы посещаете, и делать на основе этого какие-то выводы. Если собирать куки достаточно долго, можно получить о человеке много информации.

👉 В куках нельзя хранить ничего секретного — пароли, номера банковских карт и другую чувствительную информацию. Это плохая практика, и нормальные сайты так не делают. Но в интернете случается всякое, конечно.

Виды cookie

Куки бывают разные — всё зависит от того, сколько они живут, кто их ставит и для чего вообще нужны. 

Сессионные vs постоянные куки

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

Сессионные куки (session) — живут, только пока открыт браузер. Закрыли вкладку, выключили ноутбук — кука удаляется автоматически. Они отвечают за временные штуки, например чтобы сайт знал, что вы авторизованы в текущей сессии.

Постоянные куки (persistent) — остаются в браузере дольше. У них задан срок действия в атрибутах (Max-Age или Expires): они удаляются либо по истечении конкретной даты, либо через определённое время.

Благодаря таким кукам сайт может помнить ваш логин или настройки интерфейса через неделю.

Первопартийные и сторонние куки (разница и примеры)

Кроме срока жизни, у кук есть ещё одна важная характеристика — кто их ставит. Это определяет, кто сможет читать эти данные и как они будут использоваться.

Первопартийные куки (first-party) ставит сам сайт, на котором вы находитесь. Например, вы куда-то зашли и этот сайт сохранил у вас логин или тему интерфейса. Такие куки работают только на этом домене и чаще всего нужны для корректной работы сайта.

Сторонние куки (third-party) ставят внешние сервисы, которые подгружаются на сайте. Например, если сайт использует баннер от рекламной сети, то эта сеть (ads.com) может тоже оставить свою куку. И потом отслеживать вас на других сайтах, где есть те же баннеры.

Именно сторонние куки чаще всего используют для рекламы и трекинга. Поэтому современные браузеры постепенно ограничивают их работу или блокируют по умолчанию.

Зачем нужны cookie?

Мы уже кратко рассмотрели, какие данные хранятся в куках, теперь разберёмся более подробно, зачем всё это нужно.

Авторизация на сайтах

Один из самых частых сценариев: вы зашли на сайт, ввели логин и пароль — и остались внутри профиля, даже если обновили страницу. Всё благодаря куке, которая связана с вашей сессией.

В куке хранится только ID сессии или, если сайт использует JSON Web Token, зашифрованный или подписанный токен. Например, в куке может лежать вот такая строка:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NT…

Ничего не понятно, но сервер по этой строчке узнаёт вас. А если вы выходите из аккаунта — он просто аннулирует куку и больше не считает вас авторизованным.

Персонализация контента

Куки позволяют сайту не просто узнавать вас, но и подстраиваться под ваши привычки и интересы.

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

Ещё пример: новостной портал может сохранять куку с выбранными темами — «Наука», «Политика», «Технологии». Поэтому при следующем визите вы увидите подборку под ваши интересы, а не случайный набор материалов.

Куки не хранят сами статьи или дизайн, они хранят настройки. А сайт на их основе уже решает, что и как вам показать.

Таргетированная реклама

Допустим, вы смотрите кофеварку на сайте магазина. Этот сайт подключён к рекламной сети (например, Google Ads), и вместе со страницей загружается небольшой скрипт от Google. Этот скрипт делает важную вещь: оставляет в вашем браузере стороннюю куку от домена рекламной сети, например: ads_user_id=abc789.

Теперь браузер знает: вы — пользователь abc789 для сайта ads.google.com. Теперь, когда вы переходите на другой сайт, где тоже есть реклама от Google, эта кука передаётся снова. Рекламная сеть узнаёт вас — и подсовывает баннеры с кофеваркой, которую вы смотрели пять минут назад.

Суть в том, что сама кука не обязательно содержит вашу историю просмотров. Она просто содержит ID, по которому рекламная сеть ведёт вас в своей базе. То есть вся аналитика на стороне сервера. А кука — это всего лишь ярлык: «этот браузер = вот этот профиль».

Безопасность и приватность

Сами по себе куки безобидные. Это просто текстовые файлы, которые не могут ничего запускать, шпионить или ломать вам систему. У них нет кода, вирусов, троянов и прочих страшилок. 

Могут ли куки навредить («опасны ли куки»)

Куки могут стать уязвимостью в неправильных руках или при плохой реализации.

Например, сайт работает без HTTPS, а вы подключились через общедоступный вайфай. В этом случае куки можно перехватить, особенно если в них лежит токен авторизации. Его можно просто вставить в заголовок запроса (Authorization: Bearer <токен>) — и сервер подумает, что это вы. И всё: доступ к аккаунту открыт без логина и пароля.

Другой сценарий — сторонние куки, которые ставят рекламные и аналитические сети. Они не вредят напрямую, но могут отслеживать ваше поведение на разных сайтах: где вы были, что смотрели, на чём задержались. Та самая раздражающая ситуация: погуглили кроссовки, и теперь они преследуют вас по всему интернету.

А бывают случаи, когда разработчики сами создают дыру. Например, хранят в куках мейл, логин или даже роли доступа — и при этом никак это не шифруют. 

Чтобы таких историй не было, куки нужно правильно настраивать через их атрибуты:

  • Securep: кука отправляется только по HTTPS, без него будет открыт вход для перехвата;
  • HttpOnly: кука недоступна из JavaScript, что защищает от XSS-атак;
  • SameSite: ограничивает отправку куки с других сайтов. Это щит против CSRF-атак — когда злоумышленник пытается заставить ваш браузер сделать запрос от вашего имени без вашего ведома;

Ну и главное: никаких паролей и секретных данных в куках. Даже если вы их шифруете.

Как управлять куками в браузере 

В Chrome, Firefox и прочих браузерах можно настроить, кто, когда и сколько будет о вас помнить.

Chrome

Заходим в Настройки → Конфиденциальность и безопасность.

Удалить данные браузера: здесь можно подчистить куки вручную.

Полезно, если сайт ведёт себя странно, — бывает, помогает просто стереть куки и перезайти.

Сторонние файлы cookie: можно настроить куки от других сайтов, встроенных в текущую страницу (реклама, аналитика и прочее).

Можно блокировать сторонние куки — это обрубает возможности рекламных сетей вас отслеживать. Но при этом некоторые сайты могут глючить (например, если авторизация идёт через другой домен):

Настройки сайтов: можно настроить правила для отдельных сайтов. Например, запретить трекеры на одном, но разрешить авторизацию на другом.

Firefox

Заходим в Настройки → Приватность и защита

В разделе «Куки и данные сайтов» можно посмотреть общий объём хранимых куков, кэша и локальных данных:

  • Удалить данные — подчистить куки и кэш вообще со всех сайтов.
  • Управление данными — посмотреть, кто сколько весит, и удалить точечно (например, оставить нужные логины).
  • Управление исключениями — задать сайты, которым нельзя хранить куки вообще.

Опция «Удалять куки и данные сайтов при закрытии Firefox» говорит браузеру, что каждый раз нужно стартовать с чистого листа. Все данные сессий будут удаляться.

Частые вопросы о cookie

Как очистить куки

Куки можно удалить двумя способами. Через централизованную очистку в настройках браузера либо через инструменты разработчика. В этом случае можно удалить только определённые куки на сайтах.

Chrome

  • Заходим в Настройки → Конфиденциальность и безопасность → Удалить данные браузера.
  • Выбираем временной диапазон (например, «Последний час» или «За всё время»).
  • Ставим галочку на «Файлы cookie и другие данные сайтов».
  • Жмём «Удалить данные».

Будьте готовы, что вас разлогинит на большинстве сайтов.

Через DevTools:

  • Открываем сайт.
  • Жмём F12 или Cmd+Option+I → вкладка Приложение (Application).
  • Слева: Хранилище (Storage) → Файлы сookie.

Здесь можно:

  • справа удалить отдельные куки (правая кнопка мыши → «Удалить»). Удобно, если надо снести сессионные куки у конкретного сайта, не трогая остальное.
    • слева подчистить всё на сайте кнопкой «Сбросить».

    Firefox

    Вариант через настройки браузера мы уже рассмотрели выше (см. раздел «Как управлять куками в браузере»). Можно удалить куки поштучно или все, а также можно задать исключения.

    Через DevTools — всё как в Chrome:

    1. Открываем сайт.
    2. F12 → вкладка Хранилище (Storage).
    3. Раздел «Куки».
    4. Можно посмотреть файлы, удалить выборочно или подчистить всё.

    👉 А вот Tor-браузер (на базе Firefox) жёстко ограничивает куки, стирает их после сессии и блокирует сторонние. Это нужно, чтобы вас не отслеживали и не деанонимизировали.

    Кроме встроенных способов, есть расширения для браузеров (EditThisCookie, Cookie AutoDelete). Они умеют автоматически удалять куки после закрытия вкладки и чистить только определённые домены.

    Что будет, если отключить куки

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

    Ещё некоторые сайты могут начать работать неправильно — например, те, в которых что-то нужно сделать за несколько шагов. Если на сайте есть три шага по настройке личного кабинета и на каждом шаге перезагружается страница, то сайт может не сохранить важные данные и всё надо начинать сначала.

    Законны ли куки

    Когда вы заходите на какой-то сайт впервые и видите там предупреждение о куках, то сталкиваетесь с GDPR:

    GDPR (General Data Protection Regulation) — это такой европейский регламент про защиту персональных данных. Если сайт используется или может использоваться жителями Евросоюза, то он должен предупредить читателя о том, что будет применять куки для своих нужд.

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

    Если такой надписи нет, то сайт не использует куки или на него не распространяется действие GDPR. Или распространяется, но владельцу сайта всё равно. Правило такое: если надпись есть — сайт точно использует куки. Если надписи нет — скорее всего, тоже, просто сайт об этом не говорит.

    Бонус для читателей

    Если вам интересно погрузиться в мир ИТ и при этом немного сэкономить, держите наш промокод на курсы Практикума. Он даст вам скидку при оплате, поможет с льготной ипотекой и даст безлимит на маркетплейсах. Ладно, окей, это просто скидка, без остального, но хорошая. 

    Вам слово

    Приходите к нам в соцсети поделиться своим мнением о куках и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте — шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!

    Обложка:

    Алексей Сухов

    Корректор:

    Александр Зубов

    Вёрстка:

    Егор Степанов

    Соцсети:

    Юлия Зубарева

    Вам может быть интересно
    Как на самом деле производят процессоры

    Чтобы создать сверхмощный процессор, достаточно простого...

    На стиле — подборка интересных CSS-свойств

    Вы не поверите, до чего дошёл прогресс!

    medium
    Задача про соседских тараканов

    Простая математика, но непростая логика. Проверьте, получится ли у вас.

    easy
    9 признаков плохой вакансии в ИТ

    Лучше узнать про это заранее

    easy
    Padding в CSS

    Как работают внутренние отступы в вёрстке

    easy
    Как стать руководителем ИТ-команды за 5 лет

    Александр Штыков: путь от контент-менеджера до тимлида.

    Зачем нужны переменные в CSS

    Чтобы работать со стилями ещё гибче и проще.

    medium
    Ищем в Яндексе правильно

    Как найти то, что нужно, с помощью правильных поисковых запросов

    easy
    Как работает синхронизация времени в интернете

    Можно ли синхронизировать свой комп по атомным часам

    easy
    easy
    [anycomment]
    Exit mobile version