← Speed / speed / optimization / content
Komprese obsahu
Cloudflare komprimuje obsah dvěma způsoby: mezi Cloudflare a návštěvníky vašeho webu a mezi Cloudflare a vaším origin serverem.
Komprese mezi Cloudflare a návštěvníky webu
Kromě Cloudflare výchozí chování ukládání do mezipaměti, Cloudflare podporuje kompresi Gzip, Brotli a Zstandard při doručování obsahu návštěvníkům webu.
Pokud to prohlížeče návštěvníků podporují, Cloudflare vrátí pro následující typy obsahu odpovědi kódované pomocí Gzip, Brotli nebo Zstandard:
text/html
text/richtext
text/plain
text/css
text/x-script
text/x-component
text/x-java-source
text/x-markdown
application/javascript
application/x-javascript
text/javascript
text/js
image/x-icon
image/vnd.microsoft.icon
application/x-perl
application/x-httpd-cgi
text/xml
application/xml
application/rss+xml
application/vnd.api+json
application/x-protobuf
application/json
multipart/bag
multipart/mixed
application/xhtml+xml
font/ttf
font/otf
font/x-woff
image/svg+xml
application/vnd.ms-fontobject
application/ttf
application/x-ttf
application/otf
application/x-otf
application/truetype
application/opentype
application/x-opentype
application/font-woff
application/eot
application/font
application/font-sfnt
application/wasm
application/javascript-binast
application/manifest+json
application/ld+json
application/graphql+json
application/geo+jsonGlobální síť Cloudflare může návštěvníkům webu doručovat obsah pomocí komprese Gzip, Brotli, Zstandard nebo bez komprese, v závislosti na:
- Hodnoty, které návštěvníci uvádějí v
accept-encodinghlavička požadavku. - Váš plán Cloudflare.
- Jakékoli nakonfigurované pravidlo komprese která odpovídá příchozím požadavkům.
U odpovědí s chybovými stavovými kódy Cloudflare komprimuje odpověď pouze v případě, že její chybový stavový kód je 403 nebo 404. U úspěšných stavových kódů odpovědi Cloudflare kompresi odpovědí provede pouze v případě, že jejich stavový kód je 200. Odpovědi s jinými stavovými kódy komprimovány nebudou.
Výchozí chování komprese Cloudflare můžete přepsat pomocí Compression Rules.
Zpracování hlavičky Content-Length
Když Cloudflare komprimuje odpověď odesílanou návštěvníkovi webu, může vynechat Content-Length HTTP hlavičku, abyste se vyhnuli doručování nesprávné informace o délce způsobené dynamickými transformacemi. Aby zůstala zachována Content-Length nastavenou origin serverem, přidejte cache-control: no-transform k odpovědi origin serveru. Tato direktiva brání Cloudflare měnit kompresi odpovědí a umožňuje Content-Length nechte projít beze změny. Hlavička cache-control: no-transform musí nastavit origin server: nelze ji přidat v požadavcích klienta.
Komprese obsahu z origin serverů do sítě Cloudflare
Při vyžádání obsahu z vašeho origin serveru Cloudflare podporuje kompresi Brotli, kompresi Gzip nebo žádnou kompresi.
flowchart LR
accTitle: Compressed responses sent from the origin server
accDescr: Cloudflare accepts responses from origin server using Brotli compression, Gzip compression, or no compression.
A[Visitor browser]
B((Cloudflare))
C[(Origin server)]
A -.-> B == "Request<br>Accept-Encoding: br, gzip" ==> C
C == "Response<br>(Brotli / Gzip / No compression)" ==> B -.-> A
style A stroke-dasharray: 5 5
style B stroke: orange,fill: orange,color: black
style C stroke-width: 2px
linkStyle 1,2 stroke-width: 2px
linkStyle 0,3 stroke-width: 1px
Pokud váš origin server odpovídá na požadavek Cloudflare pomocí komprese Brotli/Gzip, zachováme stejnou kompresi v odpovědi odeslané návštěvníkovi webu, pokud:
- Zahrnete
content-encodingv odpovědi vašeho serveru s uvedením použité komprese (brnebogzip). - Prohlížeč (nebo klient) návštěvníka podporuje daný kompresní algoritmus.
- Nemáte zapnuté funkce Cloudflare, které mění obsah odpovědi (viz Poznámky ke kompresi typu end-to-end pro podrobnosti).
Reverzní proxy Cloudflare dokáže také převádět mezi komprimovanými a nekomprimovanými formáty. Cloudflare může z vašeho origin serveru přijímat obsah komprimovaný pomocí Brotli nebo Gzip a doručovat jej návštěvníkům nekomprimovaný (nebo naopak), nezávisle na ukládání do mezipaměti.
Pokud nechcete, aby byla konkrétní odpověď z vašeho origin serveru při doručení návštěvníkům webu kódována pomocí Brotli/Gzip, můžete to vypnout přidáním cache-control: no-transform HTTP hlavičky v odpovědi z vašeho origin webového serveru.
Poznámky ke kompresi typu end-to-end
Opětovná komprese obsahu kvůli dynamickým transformacím
I při použití stejného kompresního algoritmu v celé trase (mezi vaším origin serverem a Cloudflare i mezi globální sítí Cloudflare a návštěvníkem vašeho webu) musí Cloudflare odpověď dekomprimovat a znovu zkomprimovat, pokud pro daný požadavek povolíte některé z následujících nastavení:
- Automatic HTTPS Rewrites
- Cloudflare Fonts
- Maskování e-mailových adres
- Polish
- Rocket Loader
- JavaScript detections
- RUM
Pokud chcete tato nastavení vypnout pro konkrétní cesty URI, vytvořte konfigurační pravidlo.
Hlavička Content-Length
Cloudflare může odebrat Content-Length HTTP hlavičky odpovědí doručovaných návštěvníkům webu. Aby hlavička zůstala zachována, přidejte cache-control: no-transform HTTP hlavičku k odpovědi na origin serveru.
Metody komprese podle plánu
Mezi návštěvníky a Cloudflare
Cloudflare ve výchozím nastavení používá pro doručování obsahu následující metody komprese v závislosti na plánu zóny. Skutečně použitá komprese ale může záviset také na tom, o co prohlížeč návštěvníka požádá prostřednictvím accept-encoding hlavička.
- Plán Free: Obsah je ve výchozím nastavení komprimován pomocí Zstandard.
- Tarify Pro a Business: Obsah je ve výchozím nastavení komprimován pomocí Brotli.
- Plán Enterprise: Obsah je ve výchozím nastavení komprimován pomocí Gzip.
Mezi Cloudflare a origin serverem
Ve všech tarifech Cloudflare požaduje obsah z origin serveru pomocí accept-encoding: br, gzip To znamená, že Cloudflare požádá origin server, aby obsah odeslal komprimovaný pomocí Brotli nebo Gzip, podle toho, kterou metodu origin server podporuje.