HTTP/2とは
HTTP/2は、2015年にRFC 7540として標準化されたHTTPプロトコルの新バージョンです。Googleが開発したSPDYプロトコルをベースとして設計され、HTTP/1.1の約15年ぶりの大幅な改訂となりました。Webページの表示速度を向上させることを主な目的としています。
多重化(Multiplexing)
HTTP/2の最も重要な機能は多重化です。1つのTCP接続上で複数のリクエストとレスポンスを並行して処理できるため、HTTP/1.1で問題となっていたヘッドオブラインブロッキングが解消されます。これにより、ページの読み込み速度が大幅に向上します。
バイナリフレーミング
HTTP/2では、テキストベースだったHTTP/1.1とは異なり、バイナリ形式でデータを送受信します。バイナリフレーミング層により、データをフレームという小さな単位に分割し、効率的な通信を実現しています。
ヘッダー圧縮
HPACK圧縮アルゴリズムを使用して、HTTPヘッダーを効率的に圧縮します。重複するヘッダー情報を省略し、ハフマン符号化により通信量を削減します。これは特に、多数の小さなリクエストを行うWebアプリケーションで効果を発揮します。
サーバープッシュ
サーバープッシュ機能により、クライアントがリクエストする前に、サーバー側から必要なリソースを先行して送信できます。HTMLファイルを要求されたときに、CSSやJavaScriptファイルも同時に送信することで、ページの表示速度を向上させます。
ストリーム優先度制御
HTTP/2では、各ストリームに優先度を設定できます。重要なリソースを優先的に送信することで、ユーザー体験を最適化します。たとえば、表示に必要なCSSを画像よりも優先して送信できます。
導入と互換性
HTTP/2は、ほとんどの主要なWebブラウザとWebサーバーでサポートされています。HTTP/1.1との下位互換性も維持されており、段階的な移行が可能です。ただし、多くのブラウザはHTTP/2をTLS接続でのみサポートしています。
