この記事は、Heru Susanto氏のブログの抄訳です
2015年初頭、IESGによる新しい標準としてHTTP/2が導入されました。この標準は、アプリケーションをより速く、よりシンプルに、そしてより堅牢にします。 このブログでは、HTTP/1とHTTP/2の違い、メリット、およびいくつかの重要な用語について説明します。また後半では、HTTP/2プロトコルを実装したRAD Studio(Delphi)向けのHTTPサーバーコンポーネントを紹介いたします。
Table of Contents
なぜ HTTP/2を使用すべきなのか?
HTTP/1 から HTTP/2 に変換すると、以下のようなメリットがあります。
- HTTP/2は、リクエストとレスポンスの完全な多重化を可能にすることで、レイテンシ(待機時間)を短縮
- HTTPヘッダフィールドの効率的な圧縮によるによるプロトコルオーバーヘッドの最小化
- リクエストの優先順位付けのサポート
- 同一の接続で複数の同時交換が可能
- サーバープッシュのサポート
SPDYとは?
SPDYは、Googleで開発された実験的なプロトコルで、2009年半ばに発表されました。SPDYの主な目的は、HTTP/1.1のよく知られたパフォーマンス上の制限を解決することで、Webページのロードレイテンシーを軽減することでした。
2012年以降、この新しい実験的なプロトコルは、Chrome、Firefox、OperaのWebブラウザでサポートされています。大小を問わず、SPDYをインフラとして導入するサイトは急速に増加しています。事実上、SPDYは業界での採用が進み、デファクト・スタンダードになりつつあります。
ワーキンググループ内での多くの議論を経て、SPDY仕様は新しいHTTP/2プロトコルの出発点として採用されました。この記事の詳細をご覧になりたい方は、こちらをクリックして完全なストーリーをご覧ください。
HTTP/1.xとHTTP/2の主な違いは何ですか?
HTTP/1.xとHTTP/2の最も大きな変更点は、以下の通りです。
- クライアントとサーバーの間でHTTPメッセージをどのようにカプセル化して転送するかを規定する新しいバイナリフレーミング層の追加
- HTTP動詞、メソッド、ヘッダーなどのHTTP セマンティクスは影響を受けませんが、転送中のエンコード方法が異なる
- 改行で区切られたプレーンテキストの HTTP/1.x プロトコルとは異なり、すべての HTTP/2 通信は、より小さなメッセージとフレームに分割され、それぞれがバイナリ形式でエンコードされる
- すべての通信は、1つのTCPコネクションを介して行われる
HTTP/2を説明する公式の「RFC」ドキュメントについては、以下のリンクを参照してください。
https://datatracker.ietf.org/doc/html/rfc7540#section-4
HTTP/1.xとHTTP/2のパフォーマンスの違いは何ですか?
Delphiの本当に素晴らしいところは、最新の技術をすでに使うことができるので、HTTP/2プロトコルを使用したサーバーアプリケーションを開発者が実装できることです。Embarcaderoのテクノロジーパートナーの1つであるESEGECE社は、HTTP/2プロトコルを実装したHTTPサーバーコンポーネントを提供しています。
ESEGECEのコンポーネントを使用して、HTTP/1とHTTP/2のパフォーマンスの違いを比較してみましょう。 試用版はこちらからダウンロードできます。
デモの様子は、以下のビデオでご覧ください。
このビデオをご覧いただくと、HTTP/2はHTTP/1.xに比べて少なくとも50%以上の速度が出ていることがわかります。
RAD Studio(Delphi)は、あなたのアプリケーションをアイデアから現実へと、最高のスピードと効率で導きます。ぜひ、一度お試しください。