Что такое…

Что такое cookie — и почему сайт помнит, что ты вошёл

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

Ты вошёл на сайт, обновил страницу — и всё ещё внутри. Кажется очевидным. Но вот неожиданная штука: сервер тебя не помнит.

Каждый запрос к серверу — как разговор с человеком, у которого стирается память сразу после ответа. Он честно не знает, что минуту назад ты ввёл пароль. Что же его напоминает? Маленькая запись — cookie. И она куда безобиднее, чем про неё думают.

Что такое cookie

Cookie — это крошечная запись, которую сайт просит браузер сохранить. Внутри обычно не данные, а метка: «этот посетитель — сессия номер такой-то».

Браузер держит метку у себя и прикладывает её к каждому следующему запросу на тот же сайт. Автоматически, без твоего участия. Размер — байты. Живёт cookie либо до закрытия браузера, либо до заданной даты.

Зачем он нужен: HTTP забывчив

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

Из-за этого без cookie сервер не отличил бы тебя от соседа. Ты вошёл — но следующий клик уже «незнакомец».

Аналогия — гардероб. Ты сдал пальто, получил номерок. Гардеробщик не помнит твоё лицо. Но по номерку вернёт именно твоё пальто. Cookie — этот номерок.

Как это работает: три шага

  1. Ты входишь. Сервер проверил пароль и говорит браузеру: «сохрани cookie session=abc123».
  2. Браузер запоминает и с этого момента прикладывает session=abc123 к каждому запросу на этот сайт.
  3. Сервер видит метку, находит по ней твою сессию — и отвечает так, будто помнит тебя.

Внутри cookie обычно не пароль и не имя, а именно эта случайная метка. Настоящие данные о тебе лежат на сервере. Cookie только их отпирает — как номерок отпирает вешалку, а сам пальто не является.

Cookie — это не слежка (и когда становится)

Само по себе — нет. Cookie сессии просто держит тебя в аккаунте. Без него любой сайт с входом был бы невыносим: пароль на каждый клик.

Плохая слава пришла от сторонних cookie — тех, что ставит не сам сайт, а встроенные в него рекламные скрипты, чтобы узнавать тебя на разных сайтах. Это и есть «слежка».

Разница простая: cookie от сайта, где ты сейчас, — рабочий инструмент. Cookie от чужих трекеров внутри страницы — то, что режут блокировщики и законы о приватности. Браузеры сторонние cookie как раз сворачивают.

Что тебе с этим делать как разработчику

Когда добавишь в приложение вход, cookie появятся сами — библиотека авторизации поставит их за тебя. Знать надо три вещи.

  • Флаг HttpOnly. Запрещает JavaScript читать cookie. Даже если на страницу пролез чужой скрипт, до твоей сессии он не дотянется.
  • Флаг Secure. Cookie ездит только по HTTPS, не по открытому каналу. Иначе метку можно перехватить по дороге.
  • Cookie — не хранилище данных. Клади туда метку, а сами данные держи на сервере. Иногда вместо серверной сессии берут JWT — самодостаточный токен, но и его чаще всего возят в том же cookie.

Cookie и кэш — это одно и то же?

Нет. Кэш хранит копии страниц и картинок, чтобы сайт грузился быстрее. Cookie хранит крошечную метку, чтобы сервер узнавал тебя. Оба живут в браузере, но кэш — про скорость, cookie — про «кто ты».

Можно ли сделать сайт вообще без cookie?

Простой сайт без входа — да, cookie не нужны. Но как только появляется аккаунт, корзина или «запомнить меня», нужен способ узнавать посетителя между запросами. Cookie — самый привычный. Альтернативы есть, но почти все под капотом сводятся к тому же: браузер прикладывает метку.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →