Что такое cookies? Чем они отличаются от localStorage и sessionStorage?
- Зачем нужны cookies?
- Где браузер хранит данные сайта?
- Что такое сессия пользователя?
Cookies — небольшие данные, которые браузер отправляет на сервер с каждым запросом (сессия, настройки); localStorage и sessionStorage — хранилища, доступные только скриптам страницы.
- localStorage живёт, пока его не очистят; sessionStorage — до закрытия вкладки
- У cookies есть срок жизни, флаги HttpOnly, Secure, SameSite
А ещё Что проверять: выход из аккаунта, истечение сессии, разные вкладки, очищенные cookies
Подробно
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.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗sessionStorage живёт и после закрытия вкладки — пока пользователь сам не очистит браузер
- ✓Cookies идут на сервер; localStorage — до очистки, sessionStorage — до закрытия вкладки
- ✗localStorage отправляется на сервер с каждым запросом, а cookies живут только до закрытия вкладки
- ✗HttpOnly-cookie удобно читать из JavaScript, чтобы подставлять токен в заголовок запросов
Что спросят дальше
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.