Brotli は、Zopfli よりも 20 ~ 26% 高い圧縮率を実現できる新しいデータ形式です。 Brotli 圧縮アルゴリズムとは何ですか? Brotli はもともと、Web フォントのオフライン圧縮用に 2015 年にリリースされました。 Google のソフトウェア エンジニアは、2015 年 9 月に、特に HTTP 圧縮に重点を置いた一般的なロスレス データ圧縮を含む Brotli の拡張バージョンをリリースしました。エンコーダーは圧縮率を向上させるために部分的に書き直され、エンコーダーとデコーダーの両方が高速化され、ストリーミング API が改良されて圧縮品質レベルが追加されました。新しいバージョンでは、プラットフォーム間でのパフォーマンスの向上と、デコードに必要なメモリの削減も実現されています。 一般的な汎用圧縮アルゴリズムとは異なり、Brotli は事前定義された 120 キロバイトの辞書を使用します。辞書には、テキストと HTML ドキュメントの大規模なコーパスから抽出された 13,000 を超える一般的な単語、フレーズ、およびその他の部分文字列が含まれています。事前定義されたアルゴリズムにより、小さいファイルの圧縮密度を向上させることができます。 テキスト ファイルを圧縮する際に deflate の代わりに brotli を使用すると、圧縮密度が通常 20% 向上しますが、圧縮および解凍の速度はほぼ同じままです。 Brotli を使用したストリーミング圧縮用に、コンテンツ エンコーディング タイプ「br」が提案されています。 インストール 1. brotliをダウンロードする git クローン https://github.com/google/ngx_brotli cd ngx_brotli && git サブモジュール更新 --init 2. コンパイル 元のコンパイル設定の後に –add-module=/opt/nginx/ngx_brotli を追加します。 例えば 次のようにコードをコピーします。 ./configure --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/opt/nginx/pcre-8.41 --with-http_ssl_module --with-zlib=/opt/nginx/zlib-1.2.11 --with-openssl=/opt/nginx/openssl-1.0.2n --add-module=/opt/nginx/ngx_brotli --with-http_v2_module 設定、httpセクションに追加 http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; ファイル送信オン; tcp_nopush オン; キープアライブタイムアウト65; #Brotli 圧縮 ブロトリオン; brotli_comp_レベル 6; brotli_types テキスト/プレーン テキスト/css アプリケーション/json アプリケーション/x-javascript テキスト/xml アプリケーション/xml アプリケーション/xml+rss テキスト/javascript アプリケーション/javascript image/svg+xml; … 再起動してページを更新し、ヘッダーを表示すると、 受け入れエンコーディング:gzip、deflate、br 図に示すように これは、brotli 圧縮が有効になっていることを意味します。 設定手順 指導の紹介 ngx_brotli は次のディレクティブを定義します。 brotli では、応答データの動的圧縮を許可するかどうかを指定します。オプションの値は on と off で、デフォルト値は off です。例は以下のとおりです。 ブロトリオン; brotli_types、動的圧縮が有効な場合に圧縮が許可される MIME タイプ、デフォルト値は text/html です。例は以下のとおりです。 brotli_types テキスト/プレーン テキスト/css テキスト/xml アプリケーション/xml アプリケーション/json テキスト/javascript アプリケーション/javascript アプリケーション/x-javascript; brotli_static: .br で終わる前処理済みの圧縮ファイルの検索を許可するかどうか。オプションの値は on、off、always です。デフォルト値は off です。例は以下のとおりです。 brotli_static オフ; brotli_comp_level、圧縮レベル、オプションの値の範囲は 0 ~ 11、デフォルト値は 6 です。例は以下のとおりです。 ブロトリ_comp_レベル11; brotli_buffers、応答データを圧縮するときに使用するバッファの数とサイズ。例は以下のとおりです。 brotli_buffers 16 8k; brotli_window は brotli が使用するウィンドウ値で、デフォルト値は 512k です。例は以下のとおりです。 brotli_window 512k; brotli_min_length、応答データの最小長。長さがこの値より短い場合、圧縮操作を実行するために brotli アルゴリズムは使用されません。 brotli アルゴリズムは、Content-Length を使用して応答データの長さを決定します。例は以下のとおりです。 ブロトリの最小長さ 20; 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: JSベースの手持ち連射機能+テキスト揺れ特殊効果コードの簡単実装
>>: Windows システムに MySQL を素早くインストールして展開する方法 (グリーンの無料インストール バージョン)
目次1. コード分析2. ソースコードソースコード1. コード分析1.1 HTMLコード分析 <...
1. セマンティゼーションとは何ですか? Bing辞書の説明セマンティクス化とは、適切な HTML ...
HTML における相対と絶対の違い: 正直に言うと、HTML は世界で最もシンプルな言語です。タグ言...
データベースインデックスについては皆さんもよくご存知だと思います。 インデックスは、データベース テ...
dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...
html ¶ <html></html> html:xml ¶ <ht...
画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...
この記事では、参考までに、Vue+Vant のトップ検索バーを実装するための具体的なコードを紹介しま...
場合によっては、ユーザーがボタンをクリックして同様のフォームを追加し、クリックごとに 1 回追加でき...
私のマシン環境: Windows 2008 R2 MySQL 5.6 Baidu で「Windows...
目次概要1. 関数デバウンス2. 機能スロットリング(スロットル)概要関数アンチシェイクと関数スロッ...
1. 概要Docker イメージを作成するには、次の 3 つの方法があります。 Docker コミッ...
目次フレーム最高レベルのエラー報告活発なコミュニティとチーム冗談モカ推奨プラグインVue テストライ...
序文この記事では主に、MySQL で重複レコードをクエリして削除する方法を紹介します。参考と学習のた...
背景開発中、特定の状況でビジネス ロジックをバッチ処理するためのスクリプトが必要になる場合があります...