← Cloudflare Cache / cache / concepts
CDN-Cache-Control
CDN-Cache-Control je pole hlavičky odpovědi nastavené na origin serveru, kterým lze odděleně řídit chování mezipamětí CDN oproti ostatním zprostředkovatelům, kteří mohou odpověď zpracovávat. Hodnotu CDN-Cache-Control nebo Cloudflare-CDN-Cache-Control hlavička odpovědi se stejnými direktivami, jaké se používají u Cache-Control.
Priorita hlaviček
Máte k dispozici několik možností, jak určit, jakým způsobem CDN-Cache-Control direktivy interagují s Cache-Control direktivy.
Pokud Cache Response Rule nastavuje Cache-Control direktivy pomocí set_cache_control akce mají tyto direktivy přednost před jakýmikoli direktivami nastavenými origin serverem Cloudflare-CDN-Cache-Control a CDN-Cache-Control hlaviček.
Pokud se neuplatní žádné Cache Response Rule, origin server může:
-
Vrátit
CDN-Cache-Controlhlavička odpovědi, kterou Cloudflare vyhodnocuje při rozhodování o cachování.Cache-Control, pokud ji origin server rovněž vrátí, je proxována beze změny a neovlivňuje rozhodování Cloudflare o ukládání do cache. Kromě tohoCDN-Cache-Controlje odeslán dále v řetězci pro případ, že se mezi Cloudflare a prohlížečem nachází další CDN. -
Vrátit
Cloudflare-CDN-Cache-Controlhlavička odpovědi. To vede ke stejnému chování, jako kdyby origin vrátilCDN-Cache-Controls tím rozdílem, že Cloudflare nepoužívá proxy proCloudflare-CDN-Cache-Controldownstream, protože jde o hlavičku, která slouží pouze k řízení Cloudflare. Tato volba se hodí, pokud chcete odlišné chování mezipaměti jen pro Cloudflare, zatímco všechny ostatní downstream servery se budou nadále říditCache-Controlnebo pokud nechcete, aby Cloudflare proxovalCDN-Cache-Controlhlavičku dál směrem ke klientovi. -
Vrátit obojí
Cloudflare-CDN-Cache-ControlaCDN-Cache-Controlhlavičky odpovědi. V takovém případě se Cloudflare dívá pouze naCloudflare-CDN-Cache-Controlpři rozhodování o ukládání do mezipaměti, protože jde o nejkonkrétnější verziCDN-Cache-Controla proxujeCDN-Cache-Controldownstream. Přeposílá se pouzeCDN-Cache-Controlje v této situaci výhodné, pokud chcete, aby Cloudflare mělo jiné chování při ukládání do mezipaměti než ostatní navazující CDN sítě.
Surrogate servery navíc nebudou respektovat Cache-Control hlaviček v odpovědi z origin serveru. Pokud například Surrogate-Control hlavička je přítomna v odpovědi, Cloudflare ignoruje jakoukoli Cache-Control direktivy, i když Surrogate-Control hlavička neobsahuje žádné direktivy.
Interakce s dalšími funkcemi Cloudflare
cache rule pro Edge Cache TTL
cache rule pro Edge Cache TTL přepisuje dobu, po kterou je objekt cachován na edge (v datacentrech Cloudflare). Toto cache pravidlo přepisuje direktivy v Cloudflare-CDN-Cache-Control/CDN-Cache-Control které určují, jak dlouho je objekt uložen v mezipaměti na edge serverech. Toto pravidlo můžete vytvořit na dashboardu v Ukládání do mezipaměti > Cache Rules.
Cache rule pro Browser Cache TTL
Cache rule pro Browser Cache TTL přepisuje dobu, po kterou je objekt cachován prohlížeči nebo servery za Cloudflare. Browser Cache TTL upravuje pouze Cache-Control hlavička odpovědi. Toto cache pravidlo neupravuje Cloudflare-CDN-Cache-Control/CDN-Cache-Control hlavičky odpovědi.
Ostatní hlavičky odpovědi originu
Origin vrací Expires hlavička odpovědi, která určuje dobu, po které prohlížeč považuje objekt za neaktuální. Tato hlavička odpovědi neovlivňuje rozhodnutí o cachování na straně Cloudflare, když Cloudflare-CDN-Cache-Control/CDN-Cache-Control se používá.
Výchozí hodnoty mezipaměti Cloudflare
V situacích, kdy Cloudflare neobdrží Cloudflare-CDN-Cache-Control, CDN-Cache-Control, nebo Cache-Control hodnoty, způsobilé assety použijí obecné výchozí hodnoty.
Kdy použít CDN-Cache-Control
Správa hodnot TTL u prostředků v cache
Použijte CDN-Cache-Control když chcete spravovat TTL uložených objektů odděleně pro mezipaměti originu, mezipaměti CDN a mezipaměti prohlížeče. Následující příklad ukazuje, jak lze TTL uložených objektů spravovat pomocí hlaviček odpovědi nastavených originem.
Hlavičky:
Cache-Control: max-age=14400, s-maxage=84000Cloudflare-CDN-Cache-Control: max-age=24400CDN-Cache-Control: max-age=18000
Chování mezipaměti:
Ukládá do mezipaměti | Cache TTL (seconds) | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Origin Server Cache | 14400 | ||||||||
Sdílená cache v síti | 84000 | ||||||||
Cloudflare Edge | 24400 | ||||||||
Jiné sítě CDN | 18000 | ||||||||
Browser Cache | 14400 |
Určete, kdy poskytovat zastaralý obsah
Použijte CDN-Cache-Control hlaviček ve spojení s Cache-Control hlaviček, kterými určíte, kdy se má v případě chyby nebo během ověřování platnosti podávat zastaralý obsah. Následující příklad ukazuje, jak nastavit hlavičky a direktivy pro CDN sítě při zpracování chyb.
Hlavičky:
Cache-Control: stale-if-error=400Cloudflare-CDN-Cache-Control: stale-if-error=60CDN-Cache-Control: stale-if-error=200
Chování v reakci na chyba 5XX:
Ukládá do mezipaměti | Doba podávání zastaralého obsahu (v sekundách) v reakci na chybu | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Origin Cache Layer/Network Cache/Browser Cache | 400 (pokud předpokládá, že se direktiva použije) | ||||||||
Cloudflare Edge | 60 | ||||||||
Jiná CDN | 200 |