INTEGRITY Dokumentace

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+json

Globá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:

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:

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í:

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.

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.