Ещё раз про три хранилища
Частый дубль вопроса про клиентское хранение — ответ должен быть чётким и сравнительным.
Отличия
- Cookies — маленькие; могут автоматически уходить с HTTP; есть
HttpOnly, Secure, SameSite; живут по expires.
sessionStorage — ключ-значение на origin, изолировано вкладкой, очищается при её закрытии (типично).
localStorage — ключ-значение на origin, долгоживущее, общее для вкладок одного origin.
Ни Storage API сам по себе не защищён от XSS: любой JS страницы читает его. Секреты — в HttpOnly cookie.
Итог
Cookie — протокол+сервер; Storage — клиентский кэш/состояние без автоотправки на сервер.