Этот вопрос проверяет понимание механизма cookies для сохранения состояния в stateless-протоколе HTTP и их практического применения в веб-разработке.
Cookies - это небольшие текстовые данные, которые сервер отправляет браузеру для хранения. Они автоматически включаются в последующие запросы к тому же домену. Cookies используются для аутентификации пользователей, сохранения настроек и отслеживания поведения на сайте. Они имеют ограничения по размеру и сроку жизни.
Cookies - это механизм хранения небольших фрагментов данных на стороне клиента, которые автоматически отправляются серверу при каждом запросе.
Хранятся в браузере пользователя
Автоматически включаются в HTTP-заголовки запросов
Имеют ограничение размера (обычно 4KB на cookie)
Могут иметь срок действия (expires/max-age)
javascript
// Пример установки cookie
document.cookie = "username=John; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";
// Основные параметры:
// - name=value: данные cookie
// - expires: срок действия
// - path: путь, для которого cookie действительна
// - domain: домен, для которого cookie действительна
// - secure: передача только по HTTPS
// - samesite: защита от CSRF-атакХранение токенов авторизации
Идентификация пользователя между запросами
Поддержание состояния входа в систему
Сохранение пользовательских предпочтений
Языковые настройки
Тема оформления сайта
Сбор статистики посещений
A/B тестирование
Ретаргетинг в рекламе
HttpOnly: предотвращает доступ через JavaScript
Secure: передача только по HTTPS
SameSite: защита от CSRF-атак
Сессионные: удаляются при закрытии браузера
Постоянные: хранятся до истечения срока
Сторонние: с домена, отличного от текущего сайта
javascript
// Установка cookie
function setCookie(name, value, days) {
const expires = new Date();
expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));
document.cookie = `${name}=${value};expires=${expires.toUTCString()};path=/`;
}
// Чтение cookie
function getCookie(name) {
const cookies = document.cookie.split(';');
for (let cookie of cookies) {
const [cookieName, cookieValue] = cookie.split('=');
if (cookieName.trim() === name) {
return cookieValue;
}
}
return null;
}Вывод: Cookies необходимы для создания персонализированных веб-приложений, но требуют внимательного отношения к безопасности и конфиденциальности пользователей.