Ответ
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.
Видео-ответы
▶
КАЙФОВОЕ РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ НА MIDDLE/SENIOR FRONTEND РАЗРАБОТЧИКА С ЗП 310К!
▶
РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ С ИНТЕРЕСНЫМИ ВОПРОСАМИ И ЗАДАЧАМИ НА MIDDLE/SENIOR FRONTEND С ЗП 320К!
▶
СОБЕСЕДОВАНИЕ НА FRONTEND РАЗРАБОТЧИКА В OZON
▶
Собеседование Middle PHP разработчика
▶
#3. Java-Mentor: Мидл без опыта. Выпускник JM + School21 Frontend Dev. Публичное собеседование.
▶
82 QA Interviews Stream. 11.03.2023 at 9:00 GMT(UTC) +3
▶
73 QA Interviews Stream. 22.10.2022 at 09:15 GMT(UTC) +3
▶
71 QA Interviews Stream. 13.10.2022 at 19:45 GMT(UTC) +3