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
使い方
- ホスティングプラットフォームを選択します。Nginx、Apache、Cloudflare Workers、またはNetlify。各プラットフォームは圧縮の有効化とContent-Encodingヘッダーの設定に異なる設定形式を使用します。
- 既存のbrotliおよびgzip圧縮と並べてzstdを有効にするか、それらのいずれかを置き換えるかを選択します。生成された設定には、フォールバックの順序付けによる適切なAccept-Encodingネゴシエーションが含まれます。
- オプションでShared Dictionary Compression(SDCH)をデルタ更新用に有効にします。サーバーとクライアントの両方の設定が必要で、生成されたスニペットには辞書ネゴシエーションヘッダーが含まれます。
- 生成された設定をサーバー設定ファイル、CDNエッジ関数、またはプラットフォーム固有のヘッダー設定ファイルにコピーします。デプロイし、圧縮されたレスポンスのContent-Encodingヘッダーを確認します。
主な用途
- 高トラフィックの静的サイトでzstd圧縮をHTML、CSS、JavaScriptアセットに有効にして、帯域幅コストとページ読み込み時間を削減します。
- Cloudflareの前段にあるNginxサーバーにzstdをデプロイし、適切なAccept-EncodingネゴシエーションによりCloudflareがzstdレスポンスをサポートブラウザに通過させるようにします。
- 頻繁に更新されるドキュメントサイトでShared Dictionary Compressionを有効にします。各デプロイで総コンテンツの一部のみが変更され、デルタ圧縮により再訪問者のダウンロードサイズが大幅に削減されます。