コンテンツにスキップ

コンテンツ圧縮

Cloudflareは、コンテンツを2つの方法で圧縮します:Cloudflareとあなたのウェブサイト訪問者の間、そしてCloudflareとあなたのオリジンサーバーの間です。

Cloudflareとウェブサイト訪問者の間の圧縮

Cloudflareのデフォルトキャッシュ動作に加えて、Cloudflareはウェブサイト訪問者にコンテンツを配信する際にGzipおよびBrotli圧縮をサポートしています。

flowchart LR
accTitle: ウェブサイト訪問者に送信される圧縮レスポンス
accDescr: Cloudflareは、Gzip圧縮、Brotli圧縮、または圧縮なしで訪問者にレスポンスを送信できます。

A[訪問者ブラウザ]
B((Cloudflare))
C[(オリジンサーバー)]

A == "リクエスト" ==> B -.-> C
C -.-> B == "レスポンス<br>(Gzip / Brotli / 圧縮なし)" ==> A

style A stroke-width: 2px
style B stroke: orange,fill: orange,color: black
style C stroke-dasharray: 5 5
linkStyle 0,3 stroke-width: 2px
linkStyle 1,2 stroke-width: 1px

訪問者のウェブブラウザがサポートしている場合、Cloudflareは以下のコンテンツタイプに対してGzipまたはBrotliエンコードされたレスポンスを返します:

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

Cloudflareのグローバルネットワークは、訪問者が提供するAccept-Encodingリクエストヘッダーの値に応じて、Gzip圧縮、Brotli圧縮、または圧縮なしでコンテンツをウェブサイト訪問者に配信できます。

エラーステータスコードのレスポンスについては、Cloudflareはエラーステータスコードが403または404の場合にのみレスポンスを圧縮します。成功したレスポンスステータスコードについては、Cloudflareはステータスコードが200の場合にのみレスポンスを圧縮します。他のステータスコードのレスポンスは圧縮されません。

エンタープライズ顧客は、圧縮ルールを使用してCloudflareのデフォルトの圧縮動作を上書きできます。


オリジンサーバーからCloudflareネットワークへのコンテンツ圧縮

オリジンサーバーからコンテンツをリクエストする際、CloudflareはGzip圧縮、Brotli圧縮、または圧縮なしをサポートします。

flowchart LR
accTitle: オリジンサーバーから送信される圧縮レスポンス
accDescr: Cloudflareは、Gzip圧縮、Brotli圧縮、または圧縮なしでオリジンサーバーからのレスポンスを受け入れます。

A[訪問者ブラウザ]
B((Cloudflare))
C[(オリジンサーバー)]

A -.-> B == "リクエスト<br>Accept-Encoding: gzip, br" ==> C
C == "レスポンス<br>(Gzip / Brotli / 圧縮なし)" ==> 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

オリジンサーバーがCloudflareのリクエストに対してGzip/Brotli圧縮を使用して応答する場合、以下の条件を満たす場合に、ウェブサイト訪問者に送信されるレスポンスでも同じ圧縮を維持します:

  • サーバーレスポンスに使用されている圧縮を示すContent-Encodingヘッダーを含める。
  • 訪問者のブラウザ(またはクライアント)が圧縮アルゴリズムをサポートしている。
  • レスポンスコンテンツを変更するCloudflareの機能を有効にしない(詳細はエンドツーエンド圧縮に関する注意事項を参照)。

Cloudflareのリバースプロキシは、圧縮形式と非圧縮形式の間で変換することもできます。Cloudflareは、GzipまたはBrotli圧縮されたコンテンツをオリジンサーバーから受け取り、訪問者に非圧縮で提供することができます(またはその逆も可能です)、キャッシュに依存せずに。

特定のレスポンスをウェブサイト訪問者に配信する際にGzip/Brotliでエンコードされたくない場合は、オリジンウェブサーバーからのレスポンスにcache-control: no-transform HTTPヘッダーを含めることでこれを無効にできます。


Notes about end-to-end compression

Even when using the same compression algorithm end to end (between your origin server and Cloudflare, and between the Cloudflare global network and your website visitor), Cloudflare will need to decompress the response and compress it again if you enable any of the following settings for the request:

To disable these settings for specific URI paths, create a configuration rule.