コンテンツ圧縮
Cloudflareは、コンテンツを2つの方法で圧縮します: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/htmltext/richtexttext/plaintext/csstext/x-scripttext/x-componenttext/x-java-sourcetext/x-markdownapplication/javascriptapplication/x-javascripttext/javascripttext/jsimage/x-iconimage/vnd.microsoft.iconapplication/x-perlapplication/x-httpd-cgitext/xmlapplication/xmlapplication/rss+xmlapplication/vnd.api+jsonapplication/x-protobufapplication/jsonmultipart/bagmultipart/mixedapplication/xhtml+xmlfont/ttffont/otffont/x-woffimage/svg+xmlapplication/vnd.ms-fontobjectapplication/ttfapplication/x-ttfapplication/otfapplication/x-otfapplication/truetypeapplication/opentypeapplication/x-opentypeapplication/font-woffapplication/eotapplication/fontapplication/font-sfntapplication/wasmapplication/javascript-binastapplication/manifest+jsonapplication/ld+jsonapplication/graphql+jsonapplication/geo+jsonCloudflareのグローバルネットワークは、訪問者が提供するAccept-Encodingリクエストヘッダーの値に応じて、Gzip圧縮、Brotli圧縮、または圧縮なしでコンテンツをウェブサイト訪問者に配信できます。
エラーステータスコードのレスポンスについては、Cloudflareはエラーステータスコードが403または404の場合にのみレスポンスを圧縮します。成功したレスポンスステータスコードについては、Cloudflareはステータスコードが200の場合にのみレスポンスを圧縮します。他のステータスコードのレスポンスは圧縮されません。
エンタープライズ顧客は、圧縮ルールを使用して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ヘッダーを含めることでこれを無効にできます。
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.