Ответ
Cookies (куки) — это небольшие фрагменты данных, которые сервер отправляет браузеру пользователя с помощью HTTP-заголовка Set-Cookie. Браузер сохраняет их локально и автоматически отправляет обратно на сервер с каждым последующим запросом к соответствующему домену. Это основной механизм для поддержания состояния (state) в протоколе HTTP, который по своей природе является stateless.
Основные сценарии использования:
- Аутентификация и сессии: Хранение идентификатора сессии (Session ID).
- Персонализация: Сохранение пользовательских предпочтений (например, тема, язык).
- Отслеживание: Аналитика и таргетированная реклама.
Ключевые атрибуты cookie, задаваемые сервером:
nameиvalue: Ключ и данные.expires/max-age: Срок жизни. Без них cookie становится "сессионным" и удаляется при закрытии браузера.domainиpath: Определяют, к каким запросам cookie будет прикрепляться.secure: Cookie будет отправлен только по защищённому протоколу HTTPS.httponly: Запрещает доступ к cookie через JavaScript (document.cookie), что критически важно для защиты от XSS-атак.samesite: Защищает от CSRF-атак, ограничивая отправку cookie при межсайтовых запросах. Значения:Strict,Lax,None.
Пример работы на стороне сервера (Node.js/Express):
// Установка cookie
res.cookie('user_token', 'abc123xyz', {
maxAge: 24 * 60 * 60 * 1000, // 1 день
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
sameSite: 'lax'
});
// Чтение cookie из входящего запроса
const userToken = req.cookies.user_token;
// Удаление cookie
res.clearCookie('user_token');
Важные ограничения:
- Максимальный размер одного cookie — обычно 4 КБ.
- Браузеры ограничивают количество cookie на один домен (обычно около 50).
- Для хранения больших объёмов данных на клиенте следует использовать
localStorageилиsessionStorage.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶