Чем cookies отличаются от localStorage с точки зрения сети?
DNS, WebSocket и другие протоколы
Cookies браузер автоматически прикрепляет к каждому HTTP-запросу своего домена, а localStorage живёт только в браузере и по сети сам не передаётся — данные оттуда в запрос добавляют вручную.
Cookies
- Едут в заголовке
Cookieна каждый запрос: серверная сессия работает «сама». - Атрибуты:
HttpOnly— недоступна из JS (защита от угона через XSS),Secure— только HTTPS,SameSite— контроль кросс-сайтовой отправки (защита от CSRF), плюс Domain, Path и срок жизни. - Лимит около 4 КБ, и этот объём таскается с каждым запросом.
localStorage
- Объём 5–10 МБ, доступ из JS, переживает перезапуск браузера; sessionStorage живёт до закрытия вкладки.
- На сервер автоматически не уходит: токены добавляют заголовком
Authorization.
Следствия для безопасности
- Токен в HttpOnly-cookie не украсть через XSS, но нужна защита от CSRF.
- Токен в localStorage иммунен к CSRF, но уязвим к XSS — выбор зависит от модели угроз.
Коротко для собеседования
Главное сетевое отличие: cookie браузер отправляет сам с каждым запросом, а данные из localStorage уходят на сервер, только если код явно их добавит. Отсюда выбор места для токена: HttpOnly-cookie защищает от XSS, но требует защиты от CSRF, localStorage — наоборот.