Какие данные браузер кеширует по умолчанию?
DOM и браузер
Браузер по умолчанию кеширует статические ресурсы согласно HTTP-заголовкам: изображения, CSS, JS, шрифты (по `Cache-Control`/`ETag`/`Expires`), а также DNS, некоторые ответы. Управляется заголовками ответа.
Что кешируется
Статические ресурсы (по заголовкам)
- Изображения, CSS, JS, шрифты, медиа.
- Кешируются согласно заголовкам ответа:
Cache-Control: max-age=31536000, immutable
ETag: "abc123"
Expires: ...Без явных заголовков браузер применяет эвристики (может кешировать на основе Last-Modified).
GET-ответы
Кешируемы (по заголовкам); POST/PUT/DELETE — нет.
DNS
Браузер кеширует DNS-резолвинг на время TTL.
Прочее
- Редиректы (301 — постоянный кешируется).
- Prefetch-ресурсы.
- HTTP/2 push — уже не актуален: Chrome и Firefox убрали его поддержку.
Управление кешированием
Cache-Control (главный)
Cache-Control: max-age=3600 # кеш на час
Cache-Control: no-cache # проверять актуальность (revalidate)
Cache-Control: no-store # не кешировать вообще
Cache-Control: immutable # не перепроверять (для хешированных файлов)Валидация
- ETag / If-None-Match — сервер отвечает 304, если не изменилось.
- Last-Modified / If-Modified-Since.
Cache busting
Хеш в имени файла (app.a1b2c3.js) — при изменении меняется имя → браузер грузит новую версию, старое кешируется «навсегда».
Виды кеша браузера
- Memory cache — в памяти (быстрый, на время сессии).
- Disk cache — на диске (переживает перезапуск).
Коротко для собеседования
Браузер по умолчанию кеширует статические ресурсы (изображения, CSS, JS, шрифты) согласно HTTP-заголовкам (Cache-Control, ETag, Expires), GET-ответы, DNS (по TTL), постоянные редиректы. Без заголовков применяет эвристики. Управляют через Cache-Control (max-age, no-store, immutable) и валидацию (ETag/304). Обновление — cache busting (хеш в имени файла).