BrotliLogo

Brotli - Wikipedia


オライリーの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

バージョンが表示されたことが確認できたら、早速画像ファイルの圧縮を試してみる。


試した画像は


ori_resize


この画像のリサイズ前のもので、

ファイルのサイズは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オプションは出力時のファイル名


次の記事

ApacheサーバでBrotliを使用してみた