← Назад к вопросам

Для чего нужны Cookies?

1.2 Junior🔥 181 комментариев
#JavaScript Core#Браузер и сетевые технологии

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Для чего нужны Cookies?

Cookies — это небольшие текстовые файлы, которые браузер сохраняет на компьютере пользователя и отправляет серверу с каждым HTTP-запросом. Они являются одним из основных механизмов для хранения данных на клиенте и поддержания состояния сессии.

Основные назначения Cookies:

1. Аутентификация и сессии

Самое распространённое применение — хранение данных о сессии пользователя:

// Сервер генерирует уникальный ID сессии
Set-Cookie: sessionId=abc123def456; Path=/; HttpOnly; Secure

// Браузер автоматически отправляет его с каждым запросом
// GET /api/user HTTP/1.1
// Cookie: sessionId=abc123def456

Атрибут HttpOnly предотвращает доступ из JavaScript, что защищает от XSS-атак.

2. Персонализация

Хранение пользовательских предпочтений:

// Тёмный режим, язык интерфейса, размер шрифта
Set-Cookie: theme=dark; Max-Age=31536000
Set-Cookie: locale=ru-RU; Max-Age=31536000

Это позволяет приложению "помнить" выбор пользователя между сеансами.

3. Аналитика и отслеживание

// Cookies для анализа поведения пользователей
Set-Cookie: _ga=GA1.2.123456789.1234567890
Set-Cookie: _gid=GA1.2.987654321.0987654321

Google Analytics и аналогичные сервисы используют cookies для отслеживания посещений и взаимодействия.

4. Целевая реклама

Часть cookies используется для показа релевантной рекламы на основе истории посещений.

Атрибуты Cookies:

  • Path — путь, для которого действует cookie
  • Domain — домен, для которого действует cookie
  • Max-Age / Expires — время жизни cookie
  • HttpOnly — недоступна из JavaScript (защита от XSS)
  • Secure — передается только по HTTPS
  • SameSite — защита от CSRF-атак (Strict, Lax, None)

Работа с Cookies в JavaScript:

// Установка cookie
document.cookie = "name=John; path=/; max-age=3600";

// Чтение cookies
console.log(document.cookie); // name=John

// Удаление cookie (max-age = -1)
document.cookie = "name=; max-age=-1; path=/";

Современные альтернативы:

Для локального хранения данных теперь часто используются:

  • LocalStorage — синхронное хранилище (до 5-10 МБ)
  • SessionStorage — данные на время сеанса
  • IndexedDB — асинхронная база данных на клиенте

Однако только Cookies автоматически отправляются серверу с каждым запросом, что делает их незаменимыми для аутентификации.

Безопасность:

При работе с cookies необходимо помнить о:

  • GDPR / CCPA — требуется согласие пользователя на сбор данных
  • XSS-атаках — используй HttpOnly флаг
  • CSRF-атаках — используй SameSite атрибут
  • Шифровании — критичные данные должны быть зашифрованы

Cookies остаются фундаментальной технологией веб-разработки, несмотря на появление современных альтернатив.