Получить доступ

Что такое cookies? Чем они отличаются от localStorage и sessionStorage?

JuniorКлиент-сервер и веб
Ещё спрашивают так:
  • Зачем нужны cookies?
  • Где браузер хранит данные сайта?
  • Что такое сессия пользователя?
Коротко

Cookies — небольшие данные, которые браузер отправляет на сервер с каждым запросом (сессия, настройки); localStorage и sessionStorage — хранилища, доступные только скриптам страницы.

  • localStorage живёт, пока его не очистят; sessionStorage — до закрытия вкладки
  • У cookies есть срок жизни, флаги HttpOnly, Secure, SameSite

А ещё Что проверять: выход из аккаунта, истечение сессии, разные вкладки, очищенные cookies

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Cookies — пары «ключ=значение», которые сервер просит сохранить (заголовок Set-Cookie), а браузер возвращает с каждым запросом к этому сайту. Используются для идентификатора сессии, корзины гостя, настроек, аналитики. Размер — около 4 КБ на cookie.

Свойства cookies:

  • срок жизни — до закрытия браузера или до даты (Expires, Max-Age);
  • HttpOnly — недоступна JavaScript, защита от кражи через XSS;
  • Secure — передаётся только по HTTPS;
  • SameSite — ограничивает отправку с других сайтов, защита от CSRF.

localStorage — хранилище в браузере объёмом в несколько мегабайт, на сервер само не отправляется. Живёт, пока пользователь или сайт его не очистит. sessionStorage — то же, но только для текущей вкладки, до её закрытия.

Сессия — состояние пользователя на сервере (вошёл, корзина), которое связывается с браузером через идентификатор в cookie или токен.

Что тестировать: после выхода сессия завершается и «назад» не возвращает в аккаунт; сессия истекает по таймауту; работа в нескольких вкладках; сайт работает после очистки cookies; чувствительные данные не лежат в localStorage открытым текстом.

Что хотят услышать

  • Cookies отправляются на сервер, Web Storage — нет.
  • Различие localStorage и sessionStorage по времени жизни.
  • Флаги безопасности cookies.
  • Практические проверки.

Частые ошибки

  • Считать, что localStorage уходит на сервер.
  • Не знать, как посмотреть cookies в DevTools.

Что спросят дальше

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем