HTTP/2
RFC 7540 で追加された機能
1 つの TCP 接続上に ストリーム と呼ばれる仮想的な接続を複数作成することで、複数のリクエストとレスポンスを同時に処理できるようにする技術 これにより、通信量が削減できる
サーバがクライアントに対して必要なリソースを自動的にプッシュできる技術
これにより、クライアントがリソースを要求する前に必要なリソースを送信でき、ページの読み込み速度の向上が期待できる
理由としては、複雑な実装と オーバーヘッド が大きく、使用率が 1% 未満と活用されていなかったため また、悪意のあるサイトによる攻撃に悪用される懸念がある
たとえば、攻撃者がサーバプッシュを使ってユーザの知らないうちに大量のリソースを押し付け、ブラウザ や デバイス に負荷をかけることができる 代替案
サーバがクライアントに送信するレスポンスにおいて、リソースのヒントのみを伝える
リクエストに優先度を付ける機能
e.g.
ブラウザが Web サイトを描画する上で必須の要素である HTML や CSS、ユーザが真っ先に見たいテキストや画像の優先順位を高くし、それ以外のリソースの優先度を低くする これにより、見たいコンテンツが表示されるまでユーザが長時間待機するのを回避できる
受信側のキャパシティに合わせて送信側のデータ量を調整する技術
TCP にも存在するが、HTTP のレイヤで行うことで多重化されたストリームに対して独立した制御を行うことが可能