Для чего нужны Cookies?
DOM и браузер
Cookies нужны, чтобы хранить небольшие данные на клиенте и автоматически отправлять их на сервер с каждым запросом — прежде всего для сессий, аутентификации и персонализации.
Основные задачи
- Управление сессией — идентификатор сессии или токен, по которому сервер узнаёт пользователя между запросами (HTTP сам по себе stateless).
- Аутентификация — хранение токена авторизации (лучше в
HttpOnly-cookie). - Персонализация — язык, тема, настройки.
- Трекинг и аналитика — идентификаторы для отслеживания поведения.
Почему именно cookie
В отличие от localStorage, cookie автоматически отправляется на сервер с каждым запросом к домену — идеально для того, чтобы сервер узнавал клиента.
// HttpOnly ставит только сервер: Set-Cookie: sessionId=abc; Max-Age=3600; Secure; HttpOnly; SameSite=Lax
document.cookie = 'theme=dark; max-age=3600; secure; samesite=lax';Атрибуты безопасности
- HttpOnly — недоступна из JS (защита от XSS-кражи).
- Secure — только по HTTPS.
- SameSite — защита от CSRF.
Ограничения
- ~4 КБ на cookie.
- Отправляются с каждым запросом — не хранить много данных (влияет на трафик).
Коротко для собеседования
Cookies нужны для хранения небольших данных на клиенте, автоматически отправляемых на сервер: управление сессией, аутентификация, персонализация, трекинг. В отличие от localStorage, cookies сами уходят на сервер. Защита: HttpOnly, Secure, SameSite.