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

Ты вошёл на сайт, обновил страницу — и всё ещё внутри. Кажется очевидным. Но вот неожиданная штука: сервер тебя не помнит.
Каждый запрос к серверу — как разговор с человеком, у которого стирается память сразу после ответа. Он честно не знает, что минуту назад ты ввёл пароль. Что же его напоминает? Маленькая запись — cookie. И она куда безобиднее, чем про неё думают.
Что такое cookie
Cookie — это крошечная запись, которую сайт просит браузер сохранить. Внутри обычно не данные, а метка: «этот посетитель — сессия номер такой-то».
Браузер держит метку у себя и прикладывает её к каждому следующему запросу на тот же сайт. Автоматически, без твоего участия. Размер — байты. Живёт cookie либо до закрытия браузера, либо до заданной даты.
Зачем он нужен: HTTP забывчив
Тут корень всего. Протокол, по которому браузер говорит с сервером, устроен без памяти. Каждый запрос самостоятельный: пришёл, получил ответ, забыл. Фронтенд и бэкенд общаются именно так — короткими репликами без предыстории.
Из-за этого без cookie сервер не отличил бы тебя от соседа. Ты вошёл — но следующий клик уже «незнакомец».
Аналогия — гардероб. Ты сдал пальто, получил номерок. Гардеробщик не помнит твоё лицо. Но по номерку вернёт именно твоё пальто. Cookie — этот номерок.
Как это работает: три шага
- Ты входишь. Сервер проверил пароль и говорит браузеру: «сохрани cookie
session=abc123». - Браузер запоминает и с этого момента прикладывает
session=abc123к каждому запросу на этот сайт. - Сервер видит метку, находит по ней твою сессию — и отвечает так, будто помнит тебя.
Внутри cookie обычно не пароль и не имя, а именно эта случайная метка. Настоящие данные о тебе лежат на сервере. Cookie только их отпирает — как номерок отпирает вешалку, а сам пальто не является.
Cookie — это не слежка (и когда становится)
Само по себе — нет. Cookie сессии просто держит тебя в аккаунте. Без него любой сайт с входом был бы невыносим: пароль на каждый клик.
Плохая слава пришла от сторонних cookie — тех, что ставит не сам сайт, а встроенные в него рекламные скрипты, чтобы узнавать тебя на разных сайтах. Это и есть «слежка».
Разница простая: cookie от сайта, где ты сейчас, — рабочий инструмент. Cookie от чужих трекеров внутри страницы — то, что режут блокировщики и законы о приватности. Браузеры сторонние cookie как раз сворачивают.
Что тебе с этим делать как разработчику
Когда добавишь в приложение вход, cookie появятся сами — библиотека авторизации поставит их за тебя. Знать надо три вещи.
- Флаг HttpOnly. Запрещает JavaScript читать cookie. Даже если на страницу пролез чужой скрипт, до твоей сессии он не дотянется.
- Флаг Secure. Cookie ездит только по HTTPS, не по открытому каналу. Иначе метку можно перехватить по дороге.
- Cookie — не хранилище данных. Клади туда метку, а сами данные держи на сервере. Иногда вместо серверной сессии берут JWT — самодостаточный токен, но и его чаще всего возят в том же cookie.
Cookie и кэш — это одно и то же?
Нет. Кэш хранит копии страниц и картинок, чтобы сайт грузился быстрее. Cookie хранит крошечную метку, чтобы сервер узнавал тебя. Оба живут в браузере, но кэш — про скорость, cookie — про «кто ты».
Можно ли сделать сайт вообще без cookie?
Простой сайт без входа — да, cookie не нужны. Но как только появляется аккаунт, корзина или «запомнить меня», нужен способ узнавать посетителя между запросами. Cookie — самый привычный. Альтернативы есть, но почти все под капотом сводятся к тому же: браузер прикладывает метку.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





