Ответ вслух Middle Кеширование обновлено

Где по пути запроса бывает кеш

Вопрос

Перечисли, где по дороге от браузера до базы может кешироваться ответ, и чем эти кеши отличаются.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Первый слой это браузер: HTTP-кеш в памяти и на диске, им управляют заголовки ответа. Отдельно есть Service Worker с Cache API: тут правила пишет сам фронтенд, и он работает даже офлайн.

Что должно прозвучать в ответе

  • Memory и disk cache браузера, управляются Cache-Control

  • Service Worker и Cache API: кешем управляет код приложения

  • CDN и обратный прокси: общие кеши, s-maxage, purge

  • Кеш приложения (Redis, память процесса) на бэкенде

  • Кеш внутри БД (буферы страниц), DNS-кеш как отдельный слой

Что могут спросить следом

  • Какой из этих кешей можно сбросить сразу после деплоя?
  • Чем кеш Service Worker отличается от HTTP-кеша?

Разбор

Первый слой это браузер: HTTP-кеш в памяти и на диске, им управляют заголовки ответа. Отдельно есть Service Worker с Cache API: тут правила пишет сам фронтенд, и он работает даже офлайн. Дальше общие кеши: CDN и обратный прокси вроде nginx; они общие для всех пользователей, поэтому важны private, s-maxage и Vary, а сбросить их можно через purge. На бэкенде приложение кеширует результаты в Redis или памяти процесса, тут инвалидацию пишем сами. Наконец, база держит горячие страницы в буферах. Чем ближе кеш к пользователю, тем быстрее ответ, но тем сложнее его сбросить, поэтому для клиентских кешей полагаются на хеш в URL, а не на инвалидацию.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.