GitHub Pagesツール

無料 Zstandard圧縮ヘッダーヘルパー

Nginx、Apache、Cloudflare、Netlify向けのgzip/brotliフォールバック付きZstandard圧縮サーバー設定を生成します。

ツールを読み込み中...

Zstandard圧縮ヘッダーヘルパーとは

Zstandard(zstd)はMetaによって開発された圧縮アルゴリズムで、LZMAやDeflateに近い圧縮率をLZ4に匹敵する解凍速度で提供します。Chrome 123+がzstd Content-Encodingレスポンスのサポートを追加したことでBaseline 2026になりました。ブラウザがリクエストヘッダーにAccept-Encoding: zstdを送信すると、サーバーはレスポンスをzstdで圧縮し、Content-Encoding: zstdを設定できます。zstdをサポートしていないクライアント向けに、サーバーはbrotli(br)またはgzipにフォールバックする必要があります。Shared Dictionary Compression(SDCH)はオプションの拡張機能で、サーバーとクライアントが圧縮辞書を共有し、ページバージョン間の変更されたコンテンツのみを送信するデルタ更新を可能にします。

クイックアンサー

Content-Encoding: zstdヘッダー、Accept-Encodingネゴシエーション、brotliとgzipへのフォールバックを備えたZstandard(zstd)圧縮用のサーバー設定を生成します。Nginx、Apache、Cloudflare Workers、Netlifyをサポートしています。デルタ更新用のオプションのShared Dictionary Compression。Chrome 123+、Edge 123+、Safari 18.2+。

Last updated: 2026-06-03

制限事項

  • Zstandard Content-EncodingはFirefox(2026年初頭現在)でサポートされておらず、brotliやgzipと比較してブラウザ市場シェアが限られています。本番環境でのデプロイには、gzipフォールバック付きのマルチフォーマットAccept-Encodingネゴシエーションが常に必要です。
  • CDNおよびリバースプロキシのzstdパススルーサポートは一貫していません。Cloudflareはzstdレスポンスをネイティブにキャッシュしません。VercelとNetlifyはエッジネットワークで限定的なzstdサポートを持っています。本番環境でzstdを有効にする前に、配信チェーン全体をテストしてください。
  • Shared Dictionary Compressionには、サーバー側の辞書生成インフラストラクチャとクライアント側の辞書キャッシングが必要です。キャッシュされた辞書がない最初のページ読み込みはSDCHで圧縮されず、辞書バージョン管理は小規模サイトには価値がないかもしれない運用上の複雑さを追加します。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. ホスティングプラットフォームを選択します。Nginx、Apache、Cloudflare Workers、またはNetlify。各プラットフォームは圧縮の有効化とContent-Encodingヘッダーの設定に異なる設定形式を使用します。
  2. 既存のbrotliおよびgzip圧縮と並べてzstdを有効にするか、それらのいずれかを置き換えるかを選択します。生成された設定には、フォールバックの順序付けによる適切なAccept-Encodingネゴシエーションが含まれます。
  3. オプションでShared Dictionary Compression(SDCH)をデルタ更新用に有効にします。サーバーとクライアントの両方の設定が必要で、生成されたスニペットには辞書ネゴシエーションヘッダーが含まれます。
  4. 生成された設定をサーバー設定ファイル、CDNエッジ関数、またはプラットフォーム固有のヘッダー設定ファイルにコピーします。デプロイし、圧縮されたレスポンスのContent-Encodingヘッダーを確認します。

主な用途

  • 高トラフィックの静的サイトでzstd圧縮をHTML、CSS、JavaScriptアセットに有効にして、帯域幅コストとページ読み込み時間を削減します。
  • Cloudflareの前段にあるNginxサーバーにzstdをデプロイし、適切なAccept-EncodingネゴシエーションによりCloudflareがzstdレスポンスをサポートブラウザに通過させるようにします。
  • 頻繁に更新されるドキュメントサイトでShared Dictionary Compressionを有効にします。各デプロイで総コンテンツの一部のみが変更され、デルタ圧縮により再訪問者のダウンロードサイズが大幅に削減されます。

用途

使用例

zstdとbrotliフォールバックを備えたNginx

高トラフィックのブログがNginxサーバーからHTMLページを提供します。Accept-Encoding: zstdを送信するブラウザ向けにContent-Encoding: zstdでzstd圧縮を有効にし、brotliを2番目の優先、gzipをユニバーサルフォールバックとします。生成されたNginx設定は、ngx_brotliとzstdモジュールを使用し、リクエストごとに最適な圧縮形式をネゴシエートする設定ブロックを使用します。

CDN圧縮を使用したCloudflare Workers

静的サイトがオリジンサーバーの前段にCloudflareを使用しています。Cloudflareはオリジンからのzstd圧縮コンテンツをネイティブに提供しないため、Accept-Encodingヘッダーをチェックし、オリジンからフェッチし、Web Platform Compression Streams API(CompressionStream)を使用してレスポンスをzstdで圧縮し、Content-Encoding: zstdを設定するCloudflare Workerをデプロイします。サポートしていないブラウザの場合、Workerはオリジンレスポンスを変更せずに通過させます。

よくあるミス

  • ブラウザのAccept-Encodingヘッダーを確認せずにzstdを有効にする。zstdをサポートしていないブラウザにContent-Encoding: zstdヘッダーでgzipコンテンツを提供すると、ブラウザはレスポンスの解析に失敗し、ガベージまたは空白ページを表示します。
  • WorkerなしでCloudflareでzstdを使用する。Cloudflareはオリジンからのzstdレスポンスをネイティブにキャッシュまたは提供しません。オリジンはWorkerを介してzstdを提供するか、CloudflareがオリジンのContent-Encodingヘッダーを通過させる必要がありますが、正しくキャッシュされない可能性があります。
  • 辞書ネゴシエーションをテストせずにShared Dictionary Compressionを有効にする。SDCHはサーバーとクライアントの辞書バージョンの注意深い調整を必要とします。期限切れまたは不一致の辞書は圧縮エラーを引き起こし、ページレンダリングを壊します。

検証

  1. zstd設定をデプロイした後、Chrome 123+でサイトを開き、Networkパネルを確認します。レスポンスヘッダーにContent-Encoding: zstdが含まれている必要があります。DevToolsのSize列でデコードされたサイズを確認して、レスポンスボディが正しく解凍されることを確認します。
  2. curlを使用して異なるAccept-Encodingヘッダーでリクエストを送信し、フォールバックチェーンをテストします。curl -H "Accept-Encoding: gzip" -I https://yoursite.com/を実行し、レスポンスがgzipを使用することを確認します。curl -H "Accept-Encoding: zstd" -I https://yoursite.com/を実行し、レスポンスがzstdを使用することを確認します。

FAQ

Zstandard圧縮ヘッダーヘルパーのFAQ

ZstandardはBrotliやGzipと比べてどうですか?

圧縮レベル3〜5では、zstdは通常同じ速度でbrotliより5〜15%良い圧縮率を達成します。より高いレベル(10〜19)では、zstdはLZMAレベルの圧縮率に近づきながら、brotliより2〜3倍速く解凍します。Gzipは3つの中で最も解凍が遅く、最も低い圧縮率を達成します。ウェブコンテンツには、zstdレベル3が圧縮速度と比率の最良のバランスを提供します。ただし、brotliはzstd(Chrome 123+、Edge 123+、Safari 18.2+)よりも広いブラウザサポート(すべてのモダンブラウザ)を持っています。

Content-Encoding: zstdをサポートしているブラウザは?

Content-Encoding: zstdはChrome 123+、Edge 123+、Safari 18.2+(Baseline 2026)でサポートされています。Firefoxは2026年初頭の時点でzstd Content-Encodingをサポートしていません。Accept-Encodingネゴシエーションには常にgzipまたはbrotliをフォールバックとして含めてください。サーバーのAccept-Encoding処理では、zstdをサポートクライアント用に最初に配置して、圧縮形式を優先順に並べる必要があります。

zstdのShared Dictionary Compression(SDCH)とは何ですか?

SDCHはクライアントとサーバー間の共有辞書を使用して、ページバージョン間の変更のみを圧縮します。クライアントがページを訪れると、サーバーは辞書IDと圧縮されたデルタを送信します。後続の訪問では、クライアントはキャッシュされた辞書を使用してデルタを解凍し、変更されたコンテンツのみをダウンロードします。これにより、ほとんどのコンテンツがゆっくり変化するサイトでは、ページ更新サイズを80〜95%削減できます。SDCHではサーバーが辞書バージョンを追跡し、クライアントが辞書をキャッシュする必要があります。これはUse-As-DictionaryおよびSec-Dictionaryヘッダーを介して設定されます。

関連ツール

その他のgithub pagesツール

こちらもお試しください

こちらもお試しください