単純なHTTPS、SPDY、およびHTTP / 2パフォーマンスの比較





Firefox 35は最近リリースされ、デフォルトでHTTP / 2をサポートする最初のブラウザーになりました。



HTTP / 2は完全なテクノロジーではないため、FirefoxはHTTP / 2のバージョン14をアクティブにしますが、このプロトコルではあまり変更する必要はありません。 現在、GoogleはSPDYと並行してサーバー上で同じバージョンをサポートしているため、同じページで単純なHTTPS、SPDY、およびHTTP / 2のパフォーマンスを比較することができます。



また、HttpWatchが最近更新されました。 Firefox内でHTTP / 2をサポートするようになりました。 新しい列が表示され、各リクエストが処理されたプロトコルが示されます。







性能比較



テストのために、同じページを(異なるプロトコルを介して)数回ロードしようとします。 テスト対象のGoogle UKでは、次のテクノロジーを使用しています。



チャネルの切り替えは、Firefoxのabout:構成ページを使用して行います。







各テストは、「新鮮な」ブラウザインストールで実行されました。これは、キャッシュやその他のファイルが完全に存在しないことを意味します。



テスト#1-要求サイズと応答ヘッダー


多くのサイトはすでにページのコンテンツの圧縮に切り替えています。これはサイトの速度の点で明らかです。 残念ながら、HTTP / 1.1は、すべての要求と応答に追加されるHTTPヘッダー圧縮をサポートしていません。 SPDYとHTTP / 2は、このデータをさまざまな方法で送信するように設計されています。



SPDYは汎用のDEFLATEアルゴリズムを使用し、HTTP / 2はこの目的のために特別に設計されたHPACKを使用します。 定義済みのトークン、動的テーブル、およびハフマン技術を使用します。



空のリクエストを送信する場合でも、ヘッダーのサイズの違いに気付くことができます。 Google UKページには、空の応答(コード204)を返すビーコン要求があります。 このHttpWatchのスクリーンショットは、送信メッセージと受信メッセージのサイズの違いを示しています。





勝者:HTTP / 2



HTTP / 2リクエストサイズは、HPACKアルゴリズムのおかげで大幅に小さくなりました。



テスト#2:応答サイズ


応答メッセージは、暗号化された形式の応答と同様に、要求のテキストから形成されます。 HTTP / 2が小さなリクエストを送信することを知っていても、より多くの圧縮されたレスポンスを受け取るわけではありませんか?



スクリーンショットを見てください:







ご覧のとおり、SPDYは競合他社よりも優れています。







理由は、 HTTP / 2 DATAフレームに追加された追加バイトかもしれません。 ログでは、Googleサーバーから応答を受信したときにこの現象を観察できます。 プロトコルのドキュメントには、バイト追加する次の理由が示さています。

HTTPを介した攻撃を防ぐために、追加の文字が挿入されます。 たとえば、完全な応答テキストを含む攻撃( BREACHを参照 )。




勝者:SPDY



後のバージョンのHTTPでは応答サイズが小さくなる可能性がありますが、現在ではこのカテゴリのリーダーではありません。



テスト#3:ページの読み込みに必要なTCP接続とSSLハンドシェイクの数


ブラウザは、1つのホストへの可能な最大接続数を2から6以上に増やすことで、HTTP / 1.1のパフォーマンスを改善しました。 これにより、より多くのリクエストを作成することを犠牲にして、ページをより速く読み込むことができました。



SPDYとHTTP / 2を使用すると、1つの接続でより多くの情報を送受信できます。 テスト結果を見てみましょう。





HTTP / 2:







HTTPSは複数の接続を作成できますが、転送される情報は少なくなります。







引き分け:SPDY&HTTP / 2



SPDYとHTTP / 2はリクエストの数を減らしましたが、それらはより多くなり、データの読み込み速度に良い影響を与えるはずです。 また、サーバーへの負荷が少なくなります。これは、多数の要求に対処する必要がないため、パフォーマンスにも大きく影響するためです。



テスト#4:ページの読み込み時間


以下のスクリーンショットは、さまざまなプロトコルを使用したページの読み込み速度を示しています。







勝者:HTTP / 2



HTTPSは、送信された情報の最適な圧縮メカニズムではなく、追加の接続を開く必要があるため、この問題で失われます。 より複雑なページでは、SPDYとHTTP / 2の違いがより顕著になります。



おわりに



HTTP / 2はSPDYよりも著しく高速であるように思われましたが、さらに多くの答えがありました。 利点は、GETおよびHPACK圧縮が小さいことから明らかに導き出されます。 他の多くのインターネット接続とは異なり、インターネット接続は非対称です。ダウンロード速度は、パケットの送信速度よりも数倍速い場合があります。 これは、送信の利点が同等のダウンロードよりも重要であることを意味します。



HTTP / 2は、HTTPSやSPDYなどのプロトコルとも競合できます。 ただし、応答で観察された追加のバイトは、セキュリティとパフォーマンスの選択に直面するため、議論の余地のある機能です。



All Articles