← Cloudflare Cache / cache / concepts
Срок хранения против актуальности (TTL)
В контексте Cloudflare CDN (Content Delivery Network) freshness и retention являются двумя разными, но связанными понятиями. Для объекта в кеше freshness показывает, как долго его можно считать актуальным без обращения к источнику, а retention показывает, как долго объект остаётся в кеше до удаления.
Срок хранения
Когда ресурс запрашивают, Cloudflare кэширует его, чтобы обслуживать последующие запросы без обращения к исходному серверу. Если закэшированный объект больше не запрашивают, со временем он удаляется, освобождая место для более нового и популярного контента. Такой процесс удаления называется вытеснением (eviction).
Для выбора объектов, вытесняемых при заполнении кеша, Cloudflare использует алгоритм LRU (Least Recently Used, «давно неиспользуемые»). Срок хранения объекта показывает, сколько времени он остаётся в кеше до вытеснения. Срок хранения определяется относительной популярностью объекта и размером кеша и не настраивается.
Актуальность (TTL)
Актуальность, также известная как время жизни (Time to Live, TTL), определяет, как долго кэш может использовать объект без повторной проверки у источника. Например, если TTL объекта составляет пять минут, кэш отдаёт его напрямую в течение пяти минут после первого получения. По истечении пяти минут Cloudflare должен проверить у источника, что объект всё ещё актуален, прежде чем отдавать его снова. Есть несколько способов настроить TTL для ресурсов, которые обслуживаются через CDN Cloudflare:
-
Подключите Origin Cache Control или Управление кешем CDN директивы, например
max-ageилиs-maxage, в заголовке ответа cache-control источника. -
Используйте Cache Rules или Workers.
Если объект в кеше больше не свежий, Cloudflare повторно проверяет его у источника. Если stale-while-revalidate задан, повторная проверка происходит асинхронно по истечении срока действия: посетители продолжают получать содержимое из кеша, пока Cloudflare в фоновом режиме получает свежую копию. Без этой директивы входящие запросы ожидают ответа источника, прежде чем получить содержимое. Источник может либо подтвердить, что кешированный объект всё ещё действителен (обновив его TTL), либо вернуть новую версию взамен. См. Ревалидация для получения подробностей.