В чем разница между кэшем (Cache) и куками (Cookies) в веб-разработке?

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

Ответ

Кэш (Cache) и куки (Cookies) — это механизмы хранения данных на стороне клиента, но служат разным целям.

Параметр Кэш (Cache) Куки (Cookies)
Основная цель Повышение производительности за счет локального хранения ресурсов (HTML, CSS, JS, изображения). Хранение состояния и данных сессии (идентификатор, настройки, токены).
Что хранит Файлы (ресурсы). Небольшие текстовые строки (пары ключ-значение).
Управление В основном браузером (по правилам HTTP-заголовков). Явно сервером (через заголовок Set-Cookie) или JavaScript.
Передача Не передаются автоматически на сервер. Браузер проверяет актуальность. Автоматически отправляются на сервер с каждым HTTP-запросом (в заголовке Cookie).
Срок хранения Зависит от политики кэширования (может быть долгим). Имеет явный срок действия (Expires/Max-Age).

Пример работы с куками в JavaScript:

// Установка куки
document.cookie = "session_id=abc123; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";
// Чтение всех кук
console.log(document.cookie); // Выведет: "session_id=abc123"

Почему это важно: Кэш ускоряет загрузку страниц и снижает нагрузку на сервер. Куки необходимы для аутентификации, персонализации и отслеживания сессии.