INTEGRITY Dokumentace

Origin Cache Control

Origin Cache Control je funkce Cloudflare. Pokud je zapnutá na webu zákazníka s plánem Enterprise, znamená to, že Cloudflare má striktně respektovat Cache-Control direktiv přijatých z origin serveru. U zákazníků na plánech Free, Pro a Business je tato funkce ve výchozím nastavení zapnutá.

Cache-Control direktivy v odpovědi HTTP z vašeho origin serveru poskytují konkrétní pokyny pro cachování zprostředkující služby, jako je Cloudflare.

Se zapnutou funkcí Origin Cache Control Cache-Control direktivy přítomné v odpovědi origin serveru se dodrží přesně podle zadání. Pokud odpověď obsahuje například max-age direktivou s hodnotou 3,600 sekund uloží Cloudflare prostředek do mezipaměti na tuto dobu a teprve poté znovu zkontroluje origin server, zda nedošlo ke změnám.

Cloudflare Cache Rules umožňuje uživatelům doplnit nebo přepsat nastavení origin serveru Cache-Control hlaviček nebo výchozí zásady nastavená Cloudflare.

Následující části se věnují:

Cache-control direktivy

Cache-Control hlavička může obsahovat řadu direktiv, přičemž direktiva určuje, kdo smí daný zdroj ukládat do mezipaměti a jak dlouho ho lze v mezipaměti uchovávat, než je nutné ho aktualizovat.

Pokud je předáno více direktiv společně, jednotlivé direktivy se oddělují čárkou. Pokud direktiva přijímá argument, následuje za direktivou a je oddělen znaménkem rovná se. Příklad: max-age=86400.

Direktivy lze rozdělit do čtyř skupin: cachovatelnost, vypršení platnosti, revalidace, a ostatní.

Možnost ukládání do mezipaměti

Možnost ukládání do mezipaměti určuje, zda by daný prostředek měl vstoupit do mezipaměti, a direktivy uvedené níže tuto možnost prostředku signalizují.

Vypršení platnosti

Vypršení platnosti udává, jak dlouho má prostředek zůstat v mezipaměti, a níže uvedené direktivy ovlivňují dobu, po kterou v ní zůstává.

Zajistěte, aby HTTP Expires hlavička je na vašem origin serveru nastavena tak, aby používala greenwichský čas (GMT), jak stanovuje RFC 2616.

Revalidace

Revalidace určuje, jak se má mezipaměť chovat po vypršení platnosti prostředku, a níže uvedené direktivy toto chování ovlivňují.

stale-if-error direktiva se ignoruje, pokud Always Online je povolena nebo pokud je předána explicitní direktiva v rámci protokolu. Příkladem explicitní direktivy v rámci protokolu je no-store nebo no-cache cache direktiva, must-revalidate cache-response-directive, nebo použitelnou s-maxage nebo proxy-revalidate cache-response-directive.

Ostatní

Níže jsou uvedeny další direktivy, které ovlivňují chování mezipaměti.

Seznamte se s no-store a no-cache direktivy

Mezi direktivami Cache-Control: no-store a Cache-Control: no-cache, zejména pokud jde o to, jak ovlivňují ukládání do cache v prohlížeči a funkce jako Back-Forward Cache (BFCache).

no-store

no-cache

Další informace o chování těchto direktiv při zapnuté nebo vypnuté funkci Origin Cache Control najdete v části Direktivy sekce.

Zapnutí Origin Cache Control

Pokud aktivujete Origin Cache Control, Cloudflare se bude snažit striktně dodržovat RFC 7234. Zákazníci na plánu Enterprise mají možnost zvolit, zda se Cloudflare bude tímto chováním řídit, a mohou funkci Origin Cache Control pro své weby povolit nebo zakázat pomocí cache rules v dashboard nebo přes API. Zákazníci na plánech Free, Pro a Business mají tuto možnost ve výchozím nastavení povolenou a nemohou ji vypnout.

Chování Origin Cache Control

Následující část se věnuje direktivám a podmínkám chování souvisejícím se zapnutím nebo vypnutím Origin Cache Control.

Direktivy

Tabulka níže uvádí direktivy a jejich chování při vypnuté a zapnuté funkci Origin Cache Control.

Direktiva Chování při vypnutí Origin Cache Control Chování při zapnutí Origin Cache Control
s-maxage=0 Neuloží do mezipaměti. Ukládá do mezipaměti a vždy ji znovu ověřuje
max-age=0 Neuloží do mezipaměti. Ukládá do mezipaměti a vždy ji znovu ověřuje.
no-cache Neuloží do mezipaměti. Ukládá do mezipaměti a vždy ji znovu ověřuje. Neposkytuje zastaralý obsah.
no-cache=<headers> Neuloží do mezipaměti. Ukládá do mezipaměti, pokud hlavičky uvedené v no-cache=<headers> neexistují. Vždy znovu ověří platnost, pokud je přítomna některá z hlaviček uvedených v no-cache=<headers> je přítomen.
Private=<headers> Neuloží do mezipaměti. Neukládá do cache <headers> hodnoty uvedené v Private=<headers> direktiva.
must-revalidate Direktiva cache se ignoruje a podá se neaktuální obsah. Neposkytuje zastaralý (stale) obsah. Vyžaduje revalidaci pro CDN i pro prohlížeč.
proxy-revalidate Direktiva cache se ignoruje a podá se neaktuální obsah. Neposkytuje zastaralý (stale) obsah. Vyžaduje revalidaci pro CDN, ale ne pro prohlížeč.
no-transform Může provést (de)kompresi Gzip, použít Polish, e-mailový filtr atd. Nezmění tělo odpovědi.
s-maxage=delta, delta>1 Stejné jako max-age. Max-age a proxy-revalidate.
immutable Není dále proxováno. Předáváno proxy downstream. Směrem k prohlížeči, neovlivňuje cachovací proxy.
no-store Neuloží do mezipaměti. Neuloží do mezipaměti.

Podmínky

Chování Origin Cache Control při zapnutí i vypnutí ovlivňují i některé další scénáře.

Podmínka

chování při vypnutí Origin Cache Control

chování při zapnutí Origin Cache Control

Přítomnost Authorization hlavička.

Obsah může být uložen do mezipaměti.

Obsah se do mezipaměti uloží pouze v případě, že must-revalidate, public, nebo s-maxage je také přítomna.

Použití no-cache hlavička.

V protokolech cacheStatus=miss.

V protokolech cacheStatus=bypass.

Odpověď originu obsahuje Set-Cookie hlavička a použije se výchozí cache level.

Obsah může být uložen do mezipaměti s odstraněnými set-cookie hlavička.

Obsah se do mezipaměti neukládá.

Je nastaveno Browser Cache TTL.

Cache-Control vrácená koncovému uživateli neobsahuje private.

Pokud origin server vrátí private v Cache-Control je pak zachová.

Příklady

V následujících příkladech zjistíte, které direktivy použít s Cache-Control hlavičku k řízení konkrétního chování při ukládání do mezipaměti.

Uložení statického prostředku do mezipaměti.

Cache-Control: public, max-age=86400

Zajistěte, aby tajný prostředek nebyl nikdy uložen do cache.

Cache-Control: no-store

Ukládání prostředků do mezipaměti v prohlížečích, ale ne v proxy mezipaměti.

Cache-Control: private, max-age=3600

Ukládání prostředků do klientské i proxy mezipaměti, s upřednostněním revalidace při podání.

Cache-Control: public, no-cache

Ukládání prostředků do proxy mezipaměti, ale s POVINNOU revalidací proxy při podání.

Cache-Control: public, no-cache, proxy-revalidate nebo Cache-Control: public, s-maxage=0

Ukládání prostředků do proxy mezipaměti, ale s POVINNOU revalidací libovolnou mezipamětí při podání.

Cache-Control: public, no-cache, must-revalidate

Ukládání prostředků do mezipaměti, ale se zajištěním, že je proxy neupraví.

Cache-Control: public, no-transform

Tato konfigurace zároveň vypíná transformace, jako je komprese gzip nebo brotli, mezi naší edge sítí a vašimi návštěvníky, pokud byl původní obsah odeslán nekomprimovaný.

Ukládání prostředků do mezipaměti s revalidací, ale s možností podat neaktuální odpověď, pokud je origin server nedostupný.

Cache-Control: public, max-age=3600, stale-if-error=60

S touto konfigurací se Cloudflare pokusí revalidovat obsah s origin serverem poté, co byl v mezipaměti 3600 sekund (jednu hodinu). Pokud server místo řádné odpovědi na revalidaci vrátí chybu, Cloudflare pokračuje v doručování zastaralého prostředku ještě jednu minutu po vypršení jeho platnosti.

Ukládání prostředků do mezipaměti na Cloudflare a v prohlížečích návštěvníků na různě dlouhou dobu.

Cache-Control: public, max-age=7200, s-maxage=3600

Uložení prostředku do mezipaměti a jeho podání při revalidaci.

Cache-Control: max-age=600, stale-while-revalidate=30

Tato konfigurace určuje, že je aktivum čerstvé po dobu 600 sekund. Po dalších až 30 sekund může být obsloužena i jeho neplatná verze, zatímco Cloudflare na pozadí ověřuje aktuálnost aktiva u originu. Další informace najdete v Revalidace.

Interakce s dalšími funkcemi Cloudflare

Tato část popisuje, jak ostatní funkce Cloudflare spolupracují s Cache-Control direktivy.

Edge Cache TTL

Edge Cache TTL Cache Rules mají přednost před s-maxage a případné direktivy pro opětovné ověření zakáže. Pokud je v Cloudflare povoleno Origin Cache Control, původní Cache-Control hlavička projde od naší edge dál ke klientovi, i když je nastaveno přepsání Edge Cache TTL. Pokud je naopak Origin Cache Control v Cloudflare vypnutá, Cloudflare hodnotu Origin Cache Control přepíše.

Browser Cache TTL

Browser Cache TTL Cache Rules mají přednost před max-age nastavení předávaná dále z naší edge sítě, obvykle do prohlížečů vašich návštěvníků.

Polish

Polish je vypnuto, když je no-transform direktiva je přítomna.

Gzip a jiná komprese

Komprese je vypnutá, pokud no-transform direktiva je přítomna. Pokud je původní prostředek stažený z originu komprimovaný, poskytne se návštěvníkovi rovněž komprimovaný. Pokud je původní prostředek nekomprimovaný, komprese se neaplikuje.

JavaScript Detections

JavaScript Detections vkládání je vypnuté, když je no-transform direktiva je přítomna. cf.bot_management.js_detection.passed pole se zobrazí jako missing pro dotčené požadavky.