← Cloudflare Cache / cache / reference
Používání hlaviček ETag s Cloudflare
ETag headers identify whether the version of a resource cached in the browser is the same as the resource at the origin web server. A visitor's browser stores ETags. When a visitor revisits a site, the browser compares each ETag to the one it stored. Matching values cause a 304 Not-Modified HTTP odpověď, která signalizuje, že cachovaná verze zdroje je aktuální. Cloudflare podporuje jak silné, tak slabé ETagy nastavené na vašem origin webovém serveru.
Slabé ETagy
Slabé ETag hlavičky signalizují, že prostředek v mezipaměti je sémanticky shodný s verzí na webovém serveru, ale ne nutně bajtově totožný.
Silné ETags
Silné hlavičky ETag zajišťují, že prostředek v mezipaměti prohlížeče a na webovém serveru je bajtově identický. Použijte Cache Rules zapnout silné hlavičky ETag.
Chování se zapnutou možností Respect Strong ETags
Když zapnete Respect Strong ETags v cache rule, Cloudflare použije silné ověření pomocí hlavičky ETag, aby zajistilo, že položky v mezipaměti Cloudflare a na origin serveru jsou bajtově identické.
V některých situacích však Cloudflare převádí silné hlavičky ETag na slabé hlavičky ETag. Platí to například za těchto podmínek:
- Respect Strong ETags je zapnuto
- Komprese Brotli je zapnuto
- Odpověď origin serveru obsahuje
etag: "foobar"silná hlavička ETag
Síť Cloudflare provede následující akce v závislosti na návštěvníkově accept-encoding hlavička a komprese použitá v odpovědi origin serveru:
accept-encodinghlavička od návštěvníka |
Komprese použitá v odpovědi origin serveru | Akce Cloudflare |
|---|---|---|
gzip, br |
GZIP | Vrátit návštěvníkovi odpověď komprimovanou pomocí GZIP se silnou hlavičkou ETag: etag: "foobar". |
gzip, br |
Brotli | Vrátit návštěvníkovi odpověď komprimovanou pomocí Brotli se silnou hlavičkou ETag: etag: "foobar". |
br |
GZIP | Dekomprimujte GZIP a vraťte návštěvníkovi nekomprimovanou odpověď se slabou hlavičkou ETag: etag: W/"foobar". |
gzip |
Brotli | Dekomprimujte Brotli a vraťte návštěvníkovi nekomprimovanou odpověď se slabou hlavičkou ETag: etag: W/"foobar". |
gzip |
(žádné) | Vrátit návštěvníkovi nekomprimovanou odpověď se silnou hlavičkou ETag: etag: "foobar". |
gzip, br, zstd |
Zstandard | Vrátit návštěvníkovi odpověď komprimovanou pomocí zstd se silnou hlavičkou ETag: etag: "foobar". |
gzip, br |
Zstandard | Dekomprimujte zstd a vraťte návštěvníkovi odpověď br se slabou hlavičkou ETag: etag: W/"foobar". |
zstd |
Brotli/GZIP | Dekomprimujte zstd a vraťte návštěvníkovi odpověď zstd se slabou hlavičkou ETag: etag: W/"foobar". |
Povolení Respect Strong ETags v Cloudflare automaticky vypne funkce Rocket Loader, Email Obfuscation a Automatic HTTPS Rewrites.
Chování s vypnutou možností Respect Strong ETags
Když Respect Strong ETags je vypnuto, Cloudflare zachová silné hlavičky ETag nastavené webovým origin serverem, pokud jsou splněny všechny následující podmínky:
- Origin server odesílá odpověď komprimovanou pomocí GZIP nebo Brotli, případně nekomprimovanou odpověď.
- Pokud origin server odešle komprimovanou odpověď, návštěvník přijímá stejnou kompresi (GZIP, Brotli) podle
accept-encodinghlavička. - Rocket Loader a Email Obfuscation funkce jsou vypnuté.
Ve všech ostatních případech Cloudflare buď převede silné hlavičky ETag na slabé, nebo silný ETag úplně odstraní. Uvažujme například tyto podmínky:
- Respect Strong ETags je vypnuto
- Komprese Brotli je zapnuto
- Odpověď origin serveru obsahuje
etag: "foobar"silná hlavička ETag
Síť Cloudflare provede následující akce v závislosti na návštěvníkově accept-encoding hlavička a komprese použitá v odpovědi origin serveru:
accept-encodinghlavička od návštěvníka |
Komprese použitá v odpovědi origin serveru | Akce Cloudflare |
|---|---|---|
gzip, br |
GZIP | Dekomprimujte GZIP a vraťte návštěvníkovi odpověď komprimovanou Brotli (protože komprese Brotli je povolena) se slabou hlavičkou ETag: etag: W/"foobar". |
gzip, br |
Brotli | Vrátit návštěvníkovi odpověď komprimovanou pomocí Brotli se silnou hlavičkou ETag: etag: "foobar". |
br |
GZIP | Dekomprimujte GZIP a vraťte návštěvníkovi odpověď komprimovanou Brotli se slabou hlavičkou ETag: etag: W/"foobar". |
gzip |
Brotli | Dekomprimujte Brotli a vraťte návštěvníkovi odpověď komprimovanou GZIP se slabou hlavičkou ETag: etag: W/"foobar". |
gzip |
(žádné) | Zkomprimujte odpověď originu pomocí GZIP a vraťte ji návštěvníkovi se slabou hlavičkou ETag: etag: W/"foobar". |
gzip, br, zstd |
Zstandard | Vrátit návštěvníkovi odpověď komprimovanou pomocí zstd se silnou hlavičkou ETag: etag: "foobar". |
gzip, br |
Zstandard | Dekomprimujte zstd a vraťte návštěvníkovi nekomprimovanou odpověď se slabou hlavičkou ETag: etag: W/"foobar". |
zstd |
Brotli | Dekomprimujte zstd a vraťte návštěvníkovi nekomprimovanou odpověď se slabou hlavičkou ETag: etag: W/"foobar". |
Viz Komprese obsahu s dalšími informacemi.
Důležité upozornění
-
Hodnotu musíte nastavit ve silné hlavičce ETag pomocí dvojitých uvozovek (například
etag: "foobar"). Pokud použijete nesprávný formát, Cloudflare hlavičku ETag odstraní místo toho, aby ji převedl na slabý ETag. -
Pokud lze prostředek uložit do mezipaměti a dojde k cache miss, Cloudflare neposílá hlavičky ETag origin serveru. Je to proto, že Cloudflare potřebuje k naplnění mezipaměti celé tělo odpovědi.
-
Pokud váš origin server (nebo R2) uplatňuje kompresi na základě
accept-encoding, do cache se uloží první typ komprese. Zvažte, zda se pro váš případ použití hodí strong ETags, nebo použijte cache key rules pro zpracování různých typů komprese.