SYSTEM ATLASЗагрузка материала

Устаревший ответ во время обновления

Stale-While-Revalidate

stale-while-revalidate разрешает временно отдать устаревший кэшированный ответ, пока новая версия обновляется в фоне.

Простыми словами

Например, каталог статей мгновенно открывается из CDN, пока CDN в фоне проверяет новую версию списка. Поэтому смотрят не только на среднюю скорость, но и на нагрузку, очереди и узкое место - иначе локальное ускорение не даст заметного результата пользователю.

Пример от @Vibeclakr

Пример при разработке

Каталог статей мгновенно открывается из CDN, пока CDN в фоне проверяет новую версию списка.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

stale-while-revalidate разрешает временно отдать устаревший кэшированный ответ, пока новая версия обновляется в фоне.

Механизм действия

Cache-Control задаёт окно допустимой устарелости; кэш обслуживает stale response и параллельно revalidate origin.

Пример в работе

Нерабочий подход

Внедрить «Устаревший ответ во время обновления» как формальную настройку, не проверив сценарий отказа и ограничение: Нельзя применять к данным, где даже краткая устарелость опасна; разные кэши реализуют расширение неодинаково.

Системный подход

Применять «Устаревший ответ во время обновления» только для заявленной цели, проверять поведение на реальном контуре и сохранять наблюдаемый критерий результата.

Ограничения

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

Источник

IETF, “HTTP Cache-Control Extensions for Stale Content”, 2010.

Первоисточник