HTTP/2 vs HTTP/1.1パフォーマンス予測

リソース数、往復遅延時間、同時接続数を入力すると、HTTP/2移行時の予想改善率を計算します。

ms
プロトコル予想読み込み時間
HTTP/1.10ms
HTTP/20ms

HTTP/2に変えると実際どれくらい速くなるのか

HTTP/1.1は1つの接続で一度に1つのリクエスト・レスポンスしか処理できず、多くのブラウザはドメインごとに最大6接続までしか同時に許可しません。つまりページに60個のリソースがある場合、6個ずつ順番に分けてリクエストを送る必要があるため、全体の読み込み時間は往復遅延時間(RTT)にラウンド数を掛けた分だけ長くなります。これはよくHOL(Head-of-Line)ブロッキングと呼ばれ、リソースが多くネットワーク遅延が大きいほど影響が大きくなります。

一方HTTP/2は、1つのTCP接続の上で複数のリクエストとレスポンスを同時にやり取りするマルチプレキシングに対応しています。接続数制限による待ちがなくなるため、理論上はリソース数に関係なく1回の往復時間内でほとんどの応答を受け取れます。このツールはこの違いを単純化したモデルで示しており、リソース数が多くRTTが長いほどHTTP/2の改善効果が大きく現れることが確認できます。

実際の環境ではサーバーの帯域幅、TLSハンドシェイクの方式、リソースの優先度処理など、さらに多くの変数が関わるため、この結果は参考用の推定値です。ただしリソース数が少なかったり、既にCDNやキャッシュが十分に活用されているサイトでは、HTTP/2移行の体感効果が小さい場合もある点も考慮してください。

よくある質問

HTTP/2はなぜ速いのですか?

HTTP/2は1つの接続で複数のリクエストを同時に処理するマルチプレキシングに対応しており、HTTP/1.1のような接続数制限による待ち行列が大幅に減ります。

HTTP/1.1はなぜ同時接続数に制限がありますか?

多くのブラウザはドメインごとに最大6接続までしか許可しないため、リソースが6個を超えると残りは既存の接続が空くまで待つ必要があります。

HTTP/2に移行すれば必ず速くなりますか?

リクエスト数が少なかったり既に最適化されたサイトでは効果が小さい場合がありますが、リソースが多く遅延が大きい環境ほど改善効果は大きくなります。