Битлента
Сравнение технологий3 мин чтения·

Cookie или локальное хранилище: механизмы хранения данных на стороне браузера

Чем cookie отличаются от localStorage и других механизмов: что и куда отправляется, срок жизни, объём, безопасность и связь со слежением.

Зачем сайту хранить что-то у вас

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

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

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

Cookie

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

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

Локальное хранилище

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

Такое хранилище удобно для настроек интерфейса, черновиков и кэша данных приложения. Есть и близкие механизмы: хранилище сеанса, живущее до закрытия вкладки, и более сложная база данных браузера для больших объёмов.

Ограничение: скрипты страницы могут читать localStorage, поэтому уязвимость, позволяющая выполнить чужой код на сайте, раскроет и эти данные. Хранить в нём секреты сессии рискованно.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Сравнение по критериям: Cookie или локальное хранилище

Передача на сервер: у cookie автоматическая, у localStorage нет. Объём: у cookie малый, у localStorage больше. Защита: cookie можно пометить как недоступные для скриптов, у localStorage такой возможности нет. Срок жизни: у cookie задаётся атрибутами, у localStorage он не ограничен по умолчанию.

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

Как посмотреть и очистить данные

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

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

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

Что это значит для пользователя

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

Для владельца сайта правило простое: секреты сессии кладут в cookie с защитными атрибутами, а пользовательские настройки и кэш допустимо держать в локальном хранилище.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
cookieбраузерывеб

Часто задаваемые вопросы

Читайте также