オライリーのReal World HTTPを読んでいたら、
ブラウザからサーバにリクエストを送信して返ってくるレスポンスでBrotliで圧縮できると記載があった。
Brotliはよく使われているgzipよりも20%ちかく圧縮率を改善させたアルゴリズムらしい。
最近のブラウザであれば、httpsから始まるURLでサーバにリクエストを送信すれば、
Brotliで圧縮したレスポンスを返すことができるとのことで、
Brotliを試してみることにした。
というわけでBrotliを試してみる。
/** 2019年9月6日追記 **/
Ubuntu 18.04において、Brotliは sudo apt install brotli でインストールが可能になっていたので、下記のコンパイルによるインストールの手順は不要
/*****************************/
Brotliを試すに当たって、GitとCmakeが必要らしいので、
最初にこれらからインストールする。
※build-essentialはCmakeを利用する際に必要
sudo apt-get update sudo apt-get install git cmake build-essential
これでBrotliをインストールするための環境が整ったので、
https://github.com/google/brotli/に記載されている内容を参考にBrotliをインストールしてみた。
git clone https://github.com/google/brotli cd brotli mkdir out && cd out sudo ../configure-cmake sudo make sudo make test sudo make install #Brotliがインストールされているか確認する brotli -V
バージョンが表示されたことが確認できたら、早速画像ファイルの圧縮を試してみる。
試した画像は
この画像のリサイズ前のもので、
ファイルのサイズは870.3 kB (870,339 bytes)と記載されていた。
早速、Brotliで圧縮してみる。
圧縮の際に実行したコマンドは下記の通り
brotli ori.JPG -o ori.br
※-oオプションで圧縮後に生成されるファイルの名前を指定できる
ファイルのサイズを確認してみたら、
856.8 kB (856,847 bytes)だった。
続いて標準のgzipで圧縮してみたところ、
gzip ori.JPG
ファイルサイズは861.0 kB (860,991 bytes)だった。
このBrotliの圧縮の性能はぜひともサーバでも使えるようにしたいものだ。
追記
Brotliで圧縮後に生成されたファイル(ori.br)は下記のコマンドで解凍できる。
brotli -d ori.br -o ori.JPG
※-dオプションは解凍、-oオプションは出力時のファイル名
次の記事