一般的なWEBページでは、ページを表示する際に、およそ100〜200のリクエストが発生します。現在WEB通信に使われている HTTP/1.1 では、同時に処理できるリクエストは4〜6程度ですが、HTTP/2 では100以上のリクエストを、同時に処理をすることができますので、ページ読込みの高速化が期待できます。そこで今回は、HTTP/2 と HTTP/1.1 のページ読込みスピードを比較してみました。
WEBサーバソフトウェア
HTTP/2 の WEBサーバは、Nghttp2(nghttpd)を使わさせて頂きました。設定手順は「HTTP/2 WEBサーバ設定メモ」をご参照ください。
HTTP/2・・・nghttpd nghttp2/0.7.12-DEV
HTTP/1.1・・・Apache/2.4.6
計測に使った WEBブラウザ
Google Chrome バージョン42 を使い、表示>開発/管理>デベロッパーツール の「Network」を選択して「Load」の値を観測しました。
HTTP/2 と HTTP/1.1 のページ読込みスピードを比較
期待通り HTTP/2 の方が高速でした。平均値で見た場合 HTTP/2 を使うと、約16% 読込み時間を削減することができます。また、HTTP/1.1 に比べて、HTTP/2 は、ばらつきが小さいので「読込み時間が安定している」とも捉えることができますね。
(単位:秒) | HTTP/2 | HTTP/1.1 | 差異 | 差異率 |
---|---|---|---|---|
1回目 | 1.22 | 1.45 | -0.23 | -16% |
2回目 | 1.25 | 1.59 | -0.34 | -21% |
3回目 | 1.24 | 1.68 | -0.44 | -26% |
4回目 | 1.11 | 1.39 | -0.28 | -20% |
5回目 | 1.17 | 1.22 | -0.05 | -4% |
6回目 | 1.22 | 1.39 | -0.17 | -12% |
7回目 | 1.23 | 1.28 | -0.05 | -4% |
8回目 | 1.22 | 1.35 | -0.13 | -10% |
9回目 | 1.13 | 1.52 | -0.39 | -26% |
10回目 | 1.12 | 1.30 | -0.18 | -14% |
平均 | 1.19 | 1.42 | -0.23 | -16% |
中央値 | 1.22 | 1.39 | -0.17 | -12% |
ばらつき | 0.05 | 0.14 |
見た目では、違いが分からない HTTP/2 と HTTP/1.1 ですが、タイムラインを見ると、HTTP/2 が同時にリクエストを処理している様子や、HTTP/1.1 がリクエスト処理を待っている様子が、よく分かります。
終わりに
HTTP/2 と HTTP/1.1 の観測結果は、ネットワーク環境や、WEBブラウザによって変わります。ご自分の環境で観測することをオススメします。
コメント