Ответ
Кэш браузера — это механизм оптимизации производительности, который хранит локальные копии статических ресурсов (изображения, CSS, JS). HTTP-куки (Cookies) — это механизм управления состоянием (state management), который хранит небольшие фрагменты данных, отправляемых сервером и возвращаемых обратно.
Сравнительная таблица:
| Характеристика | Кэш (Cache) | Куки (Cookies) |
|---|---|---|
| Основная цель | Ускорение загрузки страниц | Отслеживание сессии и состояния |
| Что хранит | Файлы (CSS, JS, изображения) | Текстовые данные (ключ=значение) |
| Отправка на сервер | Нет (условные запросы через If-Modified-Since) |
Да (автоматически в заголовке Cookie) |
| Управление | HTTP-заголовки (Cache-Control, ETag) |
HTTP-заголовки (Set-Cookie) / JavaScript |
| Размер | Крупный (мегабайты) | Ограничен (~4KB на домен) |
| Срок хранения | Зависит от политики кэширования | Задается явно (Expires, Max-Age) |
Примеры:
# Сервер указывает браузеру кэшировать файл на 1 час
HTTP/1.1 200 OK
Cache-Control: max-age=3600
Content-Type: text/css
/* Содержимое style.css */
# Сервер устанавливает куку сессии
HTTP/1.1 200 OK
Set-Cookie: sessionId=abc123; Secure; HttpOnly; SameSite=Strict
// Клиентский JavaScript читает куки (не HttpOnly)
console.log(document.cookie); // Выводит все куки для текущего домена
Практический итог: Кэш делает сайт быстрее для пользователя, куки — «помнят» пользователя (логин, настройки, содержимое корзины).