Что такое Cookie и как с ними работать
Cookie — это небольшие фрагменты данных (текст), которые браузер сохраняет от имени сервера или клиента.
Они предназначены для хранения состояния сессии, аутентификации, настроек пользователя и аналитики.
Пример cookie
Set-Cookie: userId=12345; Path=/; Expires=Wed, 09 Apr 2025 10:00:00 GMT;
Этот заголовок говорит браузеру: «Сохрани cookie userId
со значением 12345
, доступный по всему сайту (Path=/
) и действительный до указанной даты».
Где используются cookie
- Авторизация и хранение токенов сессий
- Отслеживание пользователя (например, Google Analytics)
- Хранение пользовательских настроек (язык, тема)
- A/B тестирование и персонализация
Настройки cookie
Параметр | Описание |
---|---|
name=value | Имя и значение cookie |
Path | Ограничивает путь, для которого доступен cookie |
Domain | Ограничивает домен (или поддомен) |
Expires | Указывает дату, когда cookie будет удалён |
Max-Age | Время жизни cookie в секундах |
Secure | Cookie будет передаваться только по HTTPS |
HttpOnly | Недоступен через document.cookie — защищает от XSS |
SameSite | Контролирует поведение при кросс-доменных запросах (Lax, Strict, None) |
Безопасность
Важно:
Используйте флаги Secure
и HttpOnly
для всех cookie, содержащих чувствительные данные, особенно токены авторизации!
Чтение и удаление cookie в JavaScript
Прочитать
console.log(document.cookie); // "name=value; theme=dark"
Удалить
Чтобы удалить cookie, установите expires
в прошлое:
document.cookie = "theme=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
Ограничения cookie
- Максимум ~20 cookie на домен
- Максимальный размер одного cookie — ~4KB
- Отправляются в каждом HTTP-запросе → могут увеличить трафик
- Не подходят для хранения больших объёмов данных
Вывод:
Cookie — важный механизм хранения данных в браузере, особенно для сессий и безопасности. Используйте их вдумчиво, соблюдая рекомендации по конфиденциальности и безопасной передаче.