NGinxサーバーにwebappがあります。 confファイルにgzip on
を設定しましたが、現在は動作するかどうかを確認しようとしています。 YSlowはそうではないと言いますが、テストを行う6つのWebサイトのうち5つはそうだと言っています。これについて明確な答えを得るにはどうすればよいですか?また、結果に違いがあるのはなぜですか?
可能な答えの1つは、当然のことながら curl
:
$ curl http://example.com/ --silent --write-out "%{size_download}\n" --output /dev/null
31032
$ curl http://example.com/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null
2553
2番目のケースでは、クライアントはコンテンツエンコーディングをサポートしていることをサーバーに伝え、レスポンスが実際に短く圧縮されていることがわかります。
更新
Chromeは報告方法を変更しました(興味がある場合は元の回答をご覧ください)。開発者ツール(F12)を使用して確認できます。 [ネットワーク]タブに移動し、調査するファイルを選択して、右側の[ヘッダー]タブを確認します。 gzip圧縮されている場合は、Content-Encodingに表示されます。
この例では、slider.jpgは実際にgzip圧縮されています。
それをあなたがいるまさにこのページと比較してPNGファイルを見ると、そのような指定は表示されません。
明確にするために、1つがjpgで1つがpngであるためではありません。これは、一方がgzip圧縮され、もう一方が圧縮されていないためです。
前の回答
Chromeで、開発ツールをプルアップして[ネットワーク]タブに移動すると、圧縮がない場合は次のように表示されます。
また、IS圧縮がある場合は次のようになります。
言い換えれば、同じ数字(上と下)は圧縮なしを意味します。
応答ヘッダーを参照してください。 FireFoxでは、Firebugで確認できます。
Content-Encoding gzip
サーバーがgzipコンテンツをサポートしている場合、これが表示されます。
次のようなWebサービスをすばやく使用できます。 http://www.whatsmyip.org/http-compression-test/
開発者ツールのGoogle Chromeの「監査」ツールも便利です。
私はzoulの答えに基づいてこのスクリプトを書きました。
#!/bin/bash
URL=$1
PLAIN="$(curl $URL --silent --write-out "%{size_download}\n" --output /dev/null)"
GZIPPED="$(curl $URL --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null)"
if test $PLAIN -gt $GZIPPED
then echo "supported"
else echo "unsupported"
fi
例:
$ ./script.sh https://example.com/
別の便利なツール: http://gzipwtf.com
私が見た唯一のツールは、ページを解析し、すべての直接参照されたリソース(css、jsファイルなど)を見つけ、インデックスページがgzip圧縮されているかどうかだけでなく、それぞれがgzip圧縮されているかどうかを示します。
その他の有用な統計情報(リソースのダウンロード時間、速度など)も提供します