learning center banner

HTTP/3とは何ですか?

HTTP/3とは何ですか?

HTTP/3は、インターネット上の次世代トランスポートプロトコルであり、より高速で安全かつ信頼性の高いネットワーク通信を提供することを目的としています。これはQUIC(Quick UDP Internet Connections)プロトコルに基づいており、多くの革新と利点をもたらします。

HTTPプロトコルの開発

HTTPプロトコルの開発は、いくつかのバージョンと改善を経て進化してきました。以下は、HTTPプロトコルの進化における主要なマイルストーンの概要です:

  • HTTP/0.9: 1991年にリリースされ、最初のHTTPバージョンでした。これはHTMLドキュメントを取得するためのGETメソッドのみをサポートするシンプルなプロトコルであり、ヘッダーやステータスコード、進んだ機能が欠けていました。
  • HTTP/1.0: 1996年にリリースされ、重要な改善が加えられました。追加のリクエストメソッド(POST、HEADなど)をサポートし、リクエストとレスポンスのためのヘッダーを導入し、ステータスコードやエラーハンドリングをサポートしました。HTTP/1.0はまた、複数のリクエストとレスポンスを単一の接続で行うことができる持続的接続を導入しました。
  • HTTP/1.1: 1999年にリリースされ、最も広く使用されているHTTPバージョンです。パイプライン処理のサポート、キャッシュ制御、仮想ホスティング、チャンク転送エンコーディングなどの機能を導入しました。HTTP/1.1はパフォーマンスと効率を大幅に向上させました。
  • SPDY: SPDYは、Googleによって開発された実験的なプロトコルで、ウェブページの読み込み速度を改善することを目的としていました。多重化、ヘッダー圧縮、サーバープッシュなどの機能を導入しました。SPDYの一部の機能は後にHTTP/2標準に組み込まれました。
  • HTTP/2: 2015年にリリースされ、HTTP/1.1に対する大幅な改善をもたらしました。バイナリプロトコル、フレームを使用した通信、多重化のサポート、単一の接続で複数のリクエストとレスポンスを送信できる能力を導入しました。HTTP/2はまた、ヘッダー圧縮とサーバープッシュを導入し、さらなるパフォーマンスと効率の向上を図りました。
  • HTTP/3: HTTP/3はQUIC(Quick UDP Internet Connections)プロトコルに基づく次世代HTTPプロトコルです。QUICは、より迅速な接続確立とデータ転送を提供するために設計されたUDPベースのトランスポートプロトコルです。HTTP/3はQUICの機能を活用して、より高速な読み込み速度、改善されたセキュリティ、および適応性を提供します。HTTP/3はまだ開発中ですが、一部のブラウザやサーバーでのサポートが始まっています。

これらのバージョンと改善により、HTTPプロトコルは常に進化し続け、インターネットのニーズに適応し、パフォーマンス、セキュリティ、ユーザー体験を向上させています。特にHTTP/2とHTTP/3の導入は、パフォーマンスの大幅な改善と新しい機能をもたらし、ウェブの開発と革新を促進しています。

HTTP/3とは何ですか?

HTTP/3は、インターネット上のデータ交換の基盤であるハイパーテキスト転送プロトコル(HTTP)の最新バージョンです。HTTP/3は、前のバージョンであるHTTP/2に対して、ウェブページの読み込み速度と全体的なネットワークパフォーマンスを向上させるための重要な改善と最適化を導入しています。

HTTP/3の重要な変更点の一つは、従来のトランスポートプロトコルであるTCPを使用しなくなったことです。その代わりに、QUIC(Quick UDP Internet Connections)に切り替えました。QUICは、UDP(User Datagram Protocol)に基づいたトランスポートプロトコルで、TCPの信頼性とUDPの速度を兼ね備えています。QUICはまた、組み込みのトランスポート層セキュリティ(TLS)暗号化、改善された輻輳制御およびエラー回復メカニズムなどの新機能を導入しています。

QUICを使用する主な利点の一つは、ネットワーク遅延を減少させることです。TCPでは、新しい接続を確立するには複数の往復通信が必要で、これがネットワーク遅延を増加させます。それに対して、QUICは単一の往復で接続を確立できるため、遅延を減少させます。さらに、QUICは多重化をサポートしており、単一の接続で複数のリクエストを並行して送信できるため、ネットワークパフォーマンスがさらに向上します。

quic over http/3

しかし、HTTP/3にはいくつかの課題もあります。UDPに基づいているため、一部のネットワーク機器がUDPトラフィックをブロックまたは制限する可能性があり、HTTP/3の展開やパフォーマンスに影響を与えることがあります。また、HTTP/3の実装と最適化にはより多くの計算リソースが必要で、サーバーの負荷が増加する可能性があります。

HTTP/3の新機能は何ですか?

HTTP/3は、より高速で安全かつ信頼性の高いネットワーク通信体験を提供するために、いくつかの新機能と改善を導入しています。以下は、HTTP/3の新機能のいくつかです:

  • QUICプロトコル: HTTP/3は、基盤となるトランスポートプロトコルとしてQUIC(Quick UDP Internet Connections)プロトコルを利用しています。QUICはUDPベースのトランスポートプロトコルで、接続確立とデータ転送を迅速化し、レイテンシを低下させ、TCPに比べて適応性と輻輳制御が優れています。
  • 迅速な接続確立: HTTP/3は、0-RTT(ゼロラウンドトリップタイム)ハンドシェイクを通じて迅速な接続確立を可能にします。これにより、以前に接続を確立していた場合、クライアントは最初のリクエストで即座にデータを送信でき、ハンドシェイクの遅延が削減されます。
  • 多重化: HTTP/3は多重化をサポートしており、単一の接続で複数のリクエストとレスポンスを同時に送信できます。これによりネットワーク利用効率が向上し、接続の確立と終了に伴うオーバーヘッドが削減され、パフォーマンスが向上します。
  • 低遅延: 接続確立と回復のラウンドトリップ時間を最小限に抑えることで、HTTP/3のQUICプロトコルは遅延を削減します。これは特に高いパケット損失のあるネットワーク環境で有益で、HTTP/3は低遅延を維持できます。
  • トランスポート層セキュリティ: HTTP/3はトランスポート層セキュリティ(TLS)を組み込んでおり、すべてのデータが暗号化されて送信されます。これにより、高いセキュリティとプライバシー保護が提供され、データの盗難や改ざんを防ぎます。
  • 輻輳制御: HTTP/3のQUICプロトコルは高度な輻輳制御アルゴリズムを採用しており、ネットワークの輻輳に適応します。これにより、より安定した伝送性能が得られます。

これらの新機能と改善により、HTTP/3は接続確立とデータ転送を迅速化し、遅延を低下させ、ネットワーク条件に適応しやすく、強化されたプライバシー保護を提供します。HTTP/3は次世代のインターネットトランスポートプロトコルとしての重要な革新を表しています。

HTTP/3とHTTP/2の比較

HTTP/3とHTTP/2はどちらも、ワールドワイドウェブでデータを転送するために使用されるハイパーテキスト転送プロトコルのバージョンです。HTTP/2はHTTP/1.1に対して重要な改善をもたらしましたが、HTTP/3は新機能と最適化を導入しています。以下は両者の比較です:

1. トランスポートプロトコル

  • HTTP/2: トランスポートプロトコルとしてTCP(Transmission Control Protocol)を使用しており、信頼性はありますが、単一のパケットが失われると後続のパケットの伝送が遅れる「ヘッド・オブ・ライン(HOL)ブロッキング」に悩まされることがあります。
  • HTTP/3: トランスポートプロトコルとしてQUIC(Quick UDP Internet Connections)を使用しており、UDP(User Datagram Protocol)の上に構築されています。QUICはレイテンシを最小限に抑え、ヘッド・オブ・ラインブロッキングを排除するよう設計されており、より迅速かつ効率的なデータ転送を実現します。

2. 接続確立

  • HTTP/2: 接続を確立するために、クライアントとサーバー間で複数の往復が必要であり、TCPハンドシェイクやTLS(Transport Layer Security)交渉が含まれます。
  • HTTP/3: QUICは接続とセキュリティのハンドシェイクを単一の往復に統合することにより、接続確立を迅速化し、レイテンシを低下させます。

3. 多重化

  • HTTP/2: 多重化をサポートしており、複数のリクエストとレスポンスを単一のTCP接続で同時に送信することができます。これにより、複数の接続の必要が減り、パフォーマンスが向上します。
  • HTTP/3: QUICを介して多重化をサポートしており、ヘッド・オブ・ラインブロッキングの問題を解消し、さらにパフォーマンスを向上させています。

4. 暗号化

  • HTTP/2: 暗号化にはTLSを使用しますが、必須ではなく、暗号化されていない接続も存在する可能性があります。
  • HTTP/3: 暗号化はQUICプロトコルに組み込まれており、すべての接続に対して必須となっており、セキュリティとプライバシーが強化されています。

5. エラーハンドリング

  • HTTP/2: 一つのストリームでのエラーは、共有されているTCP接続のために他のストリームにも影響を与える可能性があり、パフォーマンスの問題を引き起こすことがあります。
  • HTTP/3: エラーは個々のストリームに隔離されており、QUICはストリームを独立して管理するため、エラーハンドリングが改善され、他のストリームへのエラーの影響が軽減されます。

要約すると、HTTP/3はQUICプロトコルを導入することでHTTP/2を改善し、接続確立を迅速化し、ヘッド・オブ・ラインブロッキングを排除し、必須の暗号化でセキュリティを強化しています。これらの改善により、ウェブ上でのパフォーマンスとユーザー体験が向上すると期待されています。

HTTP/3の互換性

HTTP/3は現在、さまざまな組織やインターネット企業によって実装されています。ただし、HTTP/3はまだ開発および採用段階にあることに注意が必要です。HTTP/3が基づいているQUICプロトコルは、インターネット技術委員会(IETF)によって標準化されています。

主要なブラウザやサーバーのサポート状況は以下の通りです:

ブラウザサポート:

  • Google Chrome: Chromeバージョン79からHTTP/3がサポートされています。
  • Mozilla Firefox: Firefoxバージョン78からHTTP/3がサポートされています。
  • Microsoft Edge: Edgeバージョン92からHTTP/3がサポートされています。

サーバーサポート:

  • Nginx: Nginxバージョン1.19.10からHTTP/3がサポートされています。
  • Apache: Apacheは現在HTTP/3の公式サポートはありませんが、HTTP/3サポートを有効にするためのサードパーティ製モジュール(quicheなど)が利用可能です。

HTTP/3がサポートされているものの、その普及とサポートはまだ進行中であることに注意が必要です。一部の古いブラウザやサーバーのバージョンはHTTP/3をサポートしていない可能性があるため、HTTP/3を使用する際はクライアントとサーバーの両方がプロトコルをサポートしていることを確認する必要があります。

さらに、HTTP/3はQUICプロトコルに基づいているため、HTTP/3が適切に機能するにはネットワークインフラ(ルーター、ファイアウォールなど)でQUICプロトコルのサポートが必要です。時間が経つにつれて、HTTP/3のサポートはより広範囲に普及し成熟することが期待されています。

EdgeOneのHTTP/3サポート

EdgeOneは現在、HTTP/3およびQUICプロトコルの両方をサポートしています。HTTP/3は、迅速な接続確立とデータ転送速度を提供し、複数のリクエストとレスポンスの同時送信のための多重化をサポートし、輻輳制御、ヘッダー圧縮などの分野での改善により、待機時間や遅延を大幅に削減し、ウェブサイトのパフォーマンスとユーザー体験を向上させます。