В чем разница между cookie и localStorage в веб-разработке?

«В чем разница между cookie и localStorage в веб-разработке?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Cookie и localStorage — это механизмы хранения данных на стороне клиента с принципиально разными целями и характеристиками.

Ключевые различия

Характеристика Cookie localStorage
Объем До 4 КБ на домен 5-10 МБ на домен (зависит от браузера)
Срок жизни Может быть сессионным или иметь явный срок (expires/max-age) Сохраняется до явного удаления
Передача на сервер Автоматически отправляется с каждым HTTP-запросом (заголовок Cookie) Не отправляется автоматически
Доступность Доступен и на клиенте, и на сервере Только на клиенте через JavaScript
API Примитивный строковый интерфейс Простой API ключ-значение

Примеры использования

// Cookie - установка с атрибутами
document.cookie = "session_id=abc123; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/; Secure; HttpOnly";

// localStorage - простые операции
localStorage.setItem('userPreferences', JSON.stringify({ theme: 'dark', language: 'ru' }));
const prefs = JSON.parse(localStorage.getItem('userPreferences'));
localStorage.removeItem('userPreferences');

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

Используйте cookie для:

  • Аутентификации и сессий (с флагами HttpOnly и Secure)
  • Отслеживания пользователей (с согласия)
  • Сохранения небольших настроек, нужных серверу

Используйте localStorage для:

  • Кэширования данных приложения на клиенте
  • Сохранения пользовательских настроек интерфейса
  • Хранения больших объемов данных, не требующих серверной обработки

Важно: Ни cookie, ни localStorage не подходят для хранения чувствительных данных (паролей, токенов платежей) — для этого используйте безопасные серверные сессии или специализированные решения.