HTTP/3とは?

HTTP/3はハイパーテキスト転送プロトコル(HTTP)の次期メジャーリビジョンです。高速化、セキュリティおよび信頼性の向上が図られています。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • HTTP/3で期待される改善点を理解する
  • プロトコルがどのようにユーザーエクスペリエンスを形成するかを認識する
  • 期待されるセキュリティ効果を説明する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

HTTP/3とは?

ハイパーテキスト転送プロトコル(HTTP)はインターネットの基盤となるバックボーンであり、通信プラットフォームとデバイスがどのように情報を交換し、リソースを取得するかを決定しています。簡単に言うと、ユーザーがWebサイトを読み込めるようにするものです。

HTTP/3は、HTTPの最新のメジャーバージョンです。Webブラウザとサーバーは、HTTP/3を使用して、パフォーマンス、信頼性、セキュリティなど、ユーザーエクスペリエンスを大幅にアップグレードできます。HTTPバージョンの交渉はシームレスに行われ、Webサイトコードの変更は必要ありません。

HTTP/3では何が新しくなったのか?

HTTP/3は、2015年にHTTP/2が承認されて以来、初のHTTPのメジャーアップグレードです。2021年に公開され、すべてのCloudflareのお客様が利用できるようになりました。

HTTP/3の重要な違いは、新しいトランスポートプロトコルであるQUICで実行されることです。QUICは、ネットワーク間の切り替えをすばやくサポートするように設計されています。User Datagram Protocol(UDP)に依存し、Transmission Control Protocol(TCP)には依存しません。QUICは、ネットワークパケットの損失や再順序付けによって高トランザクション接続速度を低下させる、ヘッドオブラインブロッキングと呼ばれる問題を軽減します。さらに、QUICは、レイヤー3 IPフローからレイヤー4トランスポート接続を分離するため、中断することなく異なるネットワーク間の移行を可能にします。

QUICは、人々がスマートフォンを持ち歩くことになり、1日の移動に合わせて常にネットワーク間の切り換えが行われるモバイル重視のインターネット利用をより適切にサポートできます。最初のIPが開発された当時の端末は携帯性が低く、ネットワークを頻繁に切り替えることがなかったため、このようなタイプのインターネット利用は一般的ではありませんでした。

Googleは、2012年にQUICの初期バージョンに取り組み始めました。2016年、ベンダーニュートラルな標準化団体であるInternet Engineering Task Force(IETF)がHTTP/3の新規格策定に着手した際、QUICが採用されました。世界中の専門家と協議した結果、IETFは現在標準バージョンのQUICを開発するために多くの変更を行い、RFC 9000として公開しました。

なぜ新しいバージョンのHTTPが必要なのか?

QUICは、HTTP/2の最大の欠点のいくつかを修正するのに役立ちます:

  • パケットロスの影響を低減 - 1つの情報パケットが宛先に到達しなかった場合でも、すべての情報ストリームをブロックすることはない(「ヘッドオブラインブロッキング」と呼ばれる問題)
  • 接続確立の高速化:QUICは、暗号化とトランスポートのハンドシェイクを組み合わせます。
  • ゼロラウンドトリップタイム(0-RTT):すでに接続しているサーバーに対して、クライアントはハンドシェイク要件(通信方法を決定するために互いに確認し合うプロセス)を省略することができます。
  • より包括的な暗号化:QUICはデフォルトで暗号化されているため、HTTP/3はHTTP/2よりも安全です(詳細は後述)
  • ストリーム(1つの「ストリーム」は1回のHTTPリクエストと応答の交換)にクレジットベースのシステムを使用して、ストリーム同時実行に対してHTTP/3サーバーをきめ細かに制御できるようにすることで、Webサーバーの速度を低下させたりクラッシュさせたりする、HTTP/2「Rapid Reset」分散サービス妨害(DDoS)攻撃から保護
  • 外出時など、スマートフォンがWiFiからモバイルデータ通信に切り替わる際のパフォーマンスの低下に対する回避策を開発

デフォルトでの暗号化とは?

アプリケーション層ではなく、トランスポート層で暗号化を要求することは、セキュリティ上重要な意味を持ちます。これは、接続が常に暗号化されることを意味します。以前のHTTPSでは、暗号化とトランスポート層の接続は別々に行われていました。TCP接続では、暗号化されたデータも暗号化されていないデータも伝送することができ、TCPハンドシェイクとTransport Layer Security(TLS)ハンドシェイクは別個のイベントでした。しかし、QUICが確立するのはデフォルトで暗号化されたトランスポート層の接続です。そのためアプリケーション層のデータは常に暗号化されます。

QUICは、2つのハンドシェイクを1つのアクションにまとめることでこれを実現します。アプリケーションがデータを送信する前に待つ必要があるのは1回のハンドシェイクのみであるため、遅延を短縮することができます。また、各接続に関するメタデータ(パケット番号やその他のヘッダーの一部などを含む)を暗号化することで、ユーザーの行動に関する情報を攻撃者の手に渡らないようにすることもできます。HTTP/2ではTCPとTLSに依存していたため、この機能はありませんでした。

従来、HTTPはプレーンテキストのTCPを使用していましたが、通信を監視している人なら誰でもリクエストと応答を読み取ることができるため、セキュリティに悪影響を及ぼします。現在、WebサイトやWebブラウザでは、すべてのユーザーの安全を守り、機密データを保護しやすくするために、すべてのHTTP通信を暗号化する環境が好まれます。QUICのデフォルトでの暗号化は、その目標をサポートします。

HTTP/3は現在利用可能か?

はい。HTTP/3は、すべての主要なWebブラウザに標準実装されており、Cloudflareのすべてのお客様がオリジンに変更を加えることなく有効にすることができます。お客様のドメイン向けに切り替える方法をご覧ください。

Cloudflare Radarでは、HTTPバージョンの使用状況に関する最新の統計を用意しています。