Что такое Cookies? Расскажи для чего и как использовал.

👨‍💻 Frontend Developer 🟡 Часто попадается 🎚️ Средний
#JavaScript #Браузер #База JS

Краткий ответ

Cookies — это маленькие записки, которые браузер автоматически отправляет на сервер с каждым запросом. Используются для авторизации, персонализации и хранения пользовательских настроек. 🍪

// Установка cookie
document.cookie = 'username=Иван; path=/; expires=Fri, 31 Dec 2024 23:59:59 GMT';
 
// Чтение cookie
console.log(document.cookie); // 'username=Иван'

Полный ответ

Cookies — как записки, которые ты прикрепляешь к письму каждый раз, когда пишешь другу. Сервер может читать эти записки и помнить, кто ты! 📝

Что такое Cookies

Cookies — маленькие кусочки данных (до 4 КБ), которые:

  • Хранятся в браузере
  • Автоматически отправляются на сервер с каждым запросом
  • Имеют срок годности
// Простая cookie
document.cookie = 'theme=dark';

Для чего используют Cookies

Авторизация

// ✅ Сохраняем токен авторизации
document.cookie = 'token=abc123; path=/; secure';
// Сервер будет видеть этот токен в каждом запросе

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

// ✅ Запоминаем язык пользователя
document.cookie = 'language=ru; path=/; max-age=31536000';
// При следующем визите сайт уже знает язык

Настройки

// ✅ Сохраняем настройки интерфейса
document.cookie = 'fontSize=large; path=/; expires=Fri, 31 Dec 2024 23:59:59 GMT';

Как работают Cookies

Установка

// Базовая установка
document.cookie = 'name=значение';
 
// С параметрами
document.cookie = 'username=Иван; path=/; expires=Fri, 31 Dec 2024 23:59:59 GMT; secure';

Параметры Cookies

  • path — пути, где cookie доступна
  • expires — дата истечения
  • max-age — время жизни в секундах
  • secure — только по HTTPS
  • domain — домены, где доступна

Чтение

// Чтение всех cookies
console.log(document.cookie); // 'username=Иван; theme=dark'
 
// Cookies приходят в виде строки, нужно парсить

Частые ошибки

Хранить большие данные

// ❌ Плохо — cookies отправляются с каждым запросом
document.cookie = 'bigData=очень_большие_данные'; // Замедляет сайт!
 
// ✅ Лучше — использовать localStorage
localStorage.setItem('bigData', 'очень_большие_данные');

Не устанавливать срок жизни

// ❌ Проблема — cookie без срока жизни удаляется при закрытии браузера
document.cookie = 'temp=данные';
 
// ✅ Хорошо — устанавливаем срок
document.cookie = 'temp=данные; max-age=3600'; // На час

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

// ❌ Небезопасно — cookie доступны через JavaScript
document.cookie = 'token=abc123';
 
// ✅ Безопаснее — HttpOnly cookie устанавливает сервер
// Set-Cookie: token=abc123; HttpOnly; Secure

Когда использовать Cookies

Подходят

// ✅ Авторизация (токены, сессии)
// ✅ Персонализация (язык, тема)
// ✅ Отслеживание (аналитика, реклама)

Не подходят

// ❌ Большие данные (ограничение 4 КБ)
// ❌ Частые изменения (нагружают запросы)
// ❌ Конфиденциальные данные (видны в запросах)

Простые правила

  1. Маленькие — максимум 4 КБ 📏
  2. Автоматические — отправляются с каждым запросом 🚀
  3. Срок годности — устанавливай expires или max-age ⏰
  4. Безопасность — используй secure и HttpOnly 🔐
  5. Не злоупотребляй — для больших данных есть localStorage 🚫

Понимание Cookies помогает правильно хранить пользовательские данные и работать с авторизацией! 💪


Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪