HTTP/2(元々はHTTP 2.0と呼ばれていました)は、World Wide Webで使用されるハイパーテキスト転送プロトコルの第二版です。これは主にSPDYプロトコルに基づいており、HTTPヘッダーのデータ圧縮、データ送信の多重化、サーバープッシュなどの手段を実装して、ネットワークの遅延を減らし、クライアントのページ読み込み速度を向上させます。HTTP/2はHTTPのアプリケーションセマンティクスを変更せず、HTTPリクエストメソッド、ステータスコード、およびヘッダーフィールドを引き続き利用します。主にHTTPのメッセージ送信フォーマットを変更し、バイナリフレーミングの導入を通じて性能を向上させます。
HTTPは最も広く使用されているインターネットアプリケーションプロトコルです。HTTPプロトコルの初期バージョンはシンプルでした:HTTP/0.9は、1行のプロトコルのみでWorld Wide Webを開始しました;HTTP/1.0は、人気のあるHTTP/0.9を拡張した公式仕様でした;HTTP/1.1では、IETFが最初の公式標準を発表しました。初期の段階では、シンプルさはアプリケーションのパフォーマンスのコストとなりました:HTTP/1.1は、同時性を達成し遅延を減らすために複数の接続を使用する必要がありました;HTTP/1.1はリクエストおよびレスポンスのヘッダーを圧縮せず、無駄なネットワークトラフィックを引き起こしました;HTTP/1.1は効果的なリソースの優先順位付けをサポートせず、基盤となるTCP接続の低い利用率を招きました。
ネットワークアプリケーションが人々の日常生活に不可欠になってきたため、その範囲、複雑さ、および重要性は拡大し続けています。HTTPプロトコルの問題に対処するために、HTTP/2が導入されました。HTTP/2はHTTPのアプリケーションセマンティクスを変更せず、HTTPのリクエストメソッド、ステータスコード、およびヘッダーフィールドを引き続き使用します。主にHTTPのメッセージ送信フォーマットを変更し、サーバープッシュの導入などを通じてネットワークの遅延を削減し、クライアントのページ読み込み速度を向上させます。
HTTP/2とHTTP/1.1は、ウェブページや他のリソースをネットワーク経由で送信するために使用されるHTTP(ハイパーテキスト転送プロトコル)の異なるバージョンです。両者にはいくつかの重要な違いがあります:
HTTP/2はHTTP/1.1に比べてパフォーマンス、効率、および機能性において大幅な改善を提供し、現代のWebアプリケーションにとってより良い選択肢となっています。ただし、一部の古いクライアントやサーバーはまだHTTP/1.1のみをサポートしている場合があります。実際には、最大のパフォーマンス利益と将来の互換性を確保するために、サーバーが両方のプロトコルをサポートしていることを確認するのが最善です。
HTTP/3、またQUIC(Quick UDP Internet Connections)とも呼ばれる、はHTTPの最新バージョンであり、HTTP/2に比べて多くの利点を提供します:
これらの利点により、HTTP/3はその前任者であるHTTP/2に比べてウェブのパフォーマンスとセキュリティを向上させる魅力的なオプションとなります。
curlコマンドを使用してHTTP/2リクエストを行うことができます。これを行うには、curlのバージョンがHTTP/2をサポートしていることを確認する必要があります。これを確認するには、次のコマンドを実行します:
curl --version
そして、機能リストにHTTP2が含まれているか確認します。もしバージョンがHTTP/2をサポートしている場合、次のように
-http2
フラグを使用してHTTP/2を有効にできます:
curl -v --http2 https://example.com
テンセントクラウドのEdgeOne サービスは、HTTP/2やHTTP/3などの最新のプロトコルに対する広範なサポートを提供しています。以下は、それぞれのサポート内容の概要です: