WordPress の HTTP/2 の概要
HTTP/2 は、現代の Web に導入される最も重要なマイルストーンの 1 つです。この記事では、HTTP の現状に焦点を当て、HTTP/2 の主要な利点 (およびいくつかの非技術的な概念) を紹介します。 2018 年に WordPress に HTTP/2 を実装する方法についても学びます。
HTTP の簡単な歴史
HTTP は Hypertext Transfer Protocol の略で、1991 年にティム・バーナーズ・リーによって作成されました。ティムは、World Wide Web に関して私たちが感謝しなければならない人物です。 HTTP は、インターネット上で最も普及し、 広く採用されているアプリケーション プロトコルの 1 つです。しかし、それだけではありません。
ちょっと待ってください。 アプリケーション プロトコルというフレーズを強調表示しました。何故ですか?ご存知のとおり、インターネットは実際には 4 つの階層的なプロトコル層で構成されています。各層は多数のプロトコルで構成され、コア機能を担当します。
少し調べてみると、インターネット プロトコル (IP) スイートには 4 つの層があります。
- アプリケーション層
- トランスポート層
- インターネット層
- リンク層
詳細にはあまり立ち入りませんが、最後の 3 つの層 (トランスポート層、インターネット層、リンク層) は、データを交換するための信頼できる接続を確立する役割を果たします。
最上位の層はアプリケーション層と呼ばれ、インターネット上のすべてのアプリケーションにサービスを提供します。
- Web ページの表示はインターネット上のアプリケーションであり、HTTP プロトコルによって可能になります。
- 電子メールはインターネットのもう 1 つのアプリケーションであり、POP または IMAP プロトコルによって可能になります。
インターネットのアプリケーション層には、YouTube ライブビデオやクラッシュ・オブ・ クランなどを可能にする複数のプロトコルがあります。
HTTP/2の誕生
HTTP はクライアントとサーバー間の共通言語であり、最新の Web を可能にします。単一のキーワードとドキュメント パスとしての単純な始まりから、ブラウザだけでなく、インターネットに接続されているほぼすべてのソフトウェアおよびハードウェア アプリケーションで選択されるプロトコルになりました。
ここで疑問が生じます – この重要なソフトウェアをどれくらいの頻度で更新するのでしょうか? 結局のところ、それほど頻繁ではありません
実際、HTTP プロトコルが最後にアップデートされたのは 1997 年で、最初の iPhone が発売される 10 年前でした。それが HTTP バージョン 1.1 で、20 年後、現在でも最も広く使用されている HTTP バージョンです。
猫のビデオのストリーミングから、国際宇宙ステーションから配信されるライブ ビデオ チャット、何兆ものオンライン トランザクションに至るまで、インターネットで起こるすべてのことは、20 年以上も更新されていないテクノロジー上で行われています。 長年にわたって、私たちはインターネット用の新しいアプリケーションの作成において大きな進歩を遂げてきました。ただし、HTTP/1.1 の制限から回避策を作成することでこれらすべてを実現しました。
HTTP/1.1 がすべて悪いと言っているわけではありません。ただし確実にアップデートを使用することは可能です。だからこそ、2015 年にインターネット エンジニアリング タスク フォースは、より優れた HTTP プロトコルの作成に力を入れました。
その結果、HTTP/1.1 で実行されているすべてのものとシームレスに連携する新しいプロトコルが誕生し、基礎となるテクノロジーにいくつかの大幅な改善が加えられました。この新しいプロトコルは HTTP/2 と呼ばれました。
HTTP/2 で何が変わったのでしょうか?
実際にはたくさんのこと。ただし、ここでそれらすべてを説明するつもりはありません。その頃にはきっとあなたも飽きているだろうし、さらに私がオタクっぽくない方法で説明することはできないだろう。ただし、WordPress の HTTP/2 に関しては、いくつかの重要なポイントがあります。
多重化
HTTP/1.1 では、サーバーとクライアントはリソースを要求するために個別の接続を確立する必要がありました。 UpWork のこの美しいイラストで説明しましょう。
WebサイトはHTML、CSS、JavaScript、画像などのファイルで構成されています。これらのファイルを総称してリソースと呼びます。この例では、JavaScript ファイル、CSS ファイル、画像ファイルの 3 つのリソースで構成される Web サイトがあります。
HTTP/1.1 では、ブラウザーがこれらのリソースを要求するには、サーバーとの 3 つの TCP 接続が必要であることがわかります。なぜ? HTTP/1.1 では、各接続は 1 つのリクエストしかリクエストできないためです。通常、接続数が増えると、リソースの「トラフィック渋滞」と表現するのが最適な事態が発生し、最終的には Web サイトのエクスペリエンスが遅くなります。
HTTP/2 は多重化をサポート
多重化は、サーバーが単一の接続を介して複数のファイルを送信できるようにするテクノロジーです。その結果、同じ Web サイトが HTTP/2 を使用する場合、3 つのリソースすべてを 1 つの接続経由で送信できます。その結果、ロード時間とネットワーク リソースの消費が大幅に削減されます。簡単に言うと、より少ないリソースでより多くのことができるようになります。したがって、WordPress の HTTP/2 は、WordPress サイトを(潜在的に)高速化する優れた方法です。
ドメインのシャーディングとその他の改善
新しいアプリケーションでは、HTTP/1.1 の特定の制限を克服するために「回避策」が必要であることを覚えていますか?ドメイン シャーディングはそのような回避策の 1 つです。ドメインシャーディングが必要な理由を見てみましょう。
通常、HTTP/1.1 では、サーバー (ドメイン) とクライアントの間で開かれる接続の最大数が制限されます。ほとんどの Web サイトには、並行して読み込まれる複数のリソースがあります。サイトの読み込みを高速化するために、Web サイトは複数のサブドメインからリソースを提供するようになりました。これはドメインシャーディングと呼ばれます。
HTTP/2 を使用すると、ドメインを共有する必要がなくなりました。 HTTP/2 ではオープン接続の最大数に制限がないからではありません。ただし、HTTP/2 は多重化をサポートしているためです。すべてのリソースを 1 つの接続で直接送信できます。
HTTP/2 での多重化のおかげで、これらの「回避策」の多くは必要なくなりました。これらには、CSS スプライト、データ URI を使用した CSS 内のインライン イメージ、CSS と JavaScript の連結が含まれます。スマッシング・マガジンの言葉を借りれば、次のようになります。
HTTP/2 の世界では、HTTP リクエストは安価です。開発中に、使用されるページに応じてアセットを整理すると、はるかに効果的になります。そうすれば、訪問者が必要とするコードのみを提供できます。小さなスタイルシートを大量にダウンロードしても問題ありません。物事の変化の頻度に基づいて整理することもできます。そうすれば、寿命の長い資産をより長く大切に扱うことができます。
バイナリプロトコルのサポート
コンピューターが 0 と 1 で会話することは知っていますよね?まあ、これは HTTP/1.x の話し方ではありませんでした。 HTTP1.x は、テキスト コマンドを処理して要求と応答のサイクルを完了するために使用されます。
HTTP/2 は、テキスト プロトコルからバイナリ プロトコルへの変換をサポートしています。これにより、サーバーとクライアントは実際のテキストではなく 0 と 1 で会話できるようになり、同じ要求と応答のサイクルを完了するのに必要な時間とエネルギーが大幅に削減されます。
HTTP/2 サーバープッシュ
この機能を説明すると少し複雑になるかもしれませんが、簡単に説明していきます。従来の HTTP/1.1 シナリオでは、サーバー (または Web サイト) は、クライアントがリソースを要求した場合にのみ、クライアント (ブラウザー) にリソースを送信します。これは典型的な要求と応答のシナリオです。
ただし、HTTP/2 ではサーバー プッシュの概念が導入されており、クライアントが明示的にリソースを要求しなくても、サーバーは初めてクライアントにリソース (または情報) を送信できるようになります。このメカニズムにより、要求と応答の往復が節約され、ネットワーク遅延が短縮されます。
Web 開発者は、サーバー プッシュを活用するアプリケーションを構築し、リクエストを予測して追加のリソース/情報をクライアントに送信できます。最終結果?より高速でスムーズなアプリケーション。
ヘッダー圧縮
HTTP/2 は、クライアントとサーバー間でデータを交換するときに HPACK ヘッダー圧縮と呼ばれるものを使用します。これがなぜ重要なのかを説明する前に、プロトコルについてもう少し詳しく学びましょう。
あらゆるプロトコル (HTTP を含む) のデータ ユニットは、ヘッダー、ペイロード、フッターという 3 つのコア コンポーネントで構成されます。
- ヘッダー: ヘッダーにはデータユニットに関する情報が含まれます
- ペイロード: これは、サーバーからクライアントに転送される実際のデータです。
- フッター: これは、データ ユニットがエラーなく正常に配信されたことを確認する一種のチェックリストです。
ヘッダー圧縮の仕組みは非常に単純です。サーバーはヘッダー情報をクライアントに転送する前に圧縮します。データユニット(またはパケット)を受信すると、クライアントはヘッダーを解凍し、それをユーザーに(またはユーザーのために)表示(または使用)します。
今日、メディアリッチな Web サイト (Netflix やニューヨーク タイムズなど) が標準になりつつあるため、HTTP/2 の HPACK ヘッダー圧縮により、サーバーからクライアントにデータを転送する際に帯域幅を大幅に節約できます。
TLSの改善
TLS は Transport Layer Security の略で、サーバーとクライアント間の接続を暗号化する技術です。 HTTPS があることがわかっています。これは、オンライン取引中にハッカーがクレジット カード情報やその他の個人データを盗むのを防ぐのに役立つテクノロジーです。
HTTP/2 は既存の TLS テクノロジーと完璧に連携し、TLS ハンドシェイクの削減、クライアント側とサーバー側の両方でのリソース消費の削減、HTTP/1 に関連する特定の脆弱性を排除しながら既存の Web セッションを再利用する機能の向上など、大量の高度な機能をもたらします。 。バツ。
世界は HTTP/2 の準備ができていますか?
まあ、それは状況によります。 Chrome や Firefox を含む最新のブラウザのほとんどは、HTTP/2 プロトコルをサポートしています。 HTTP/2 プロトコルを実装するためのリソースがある場合は、先に進んで実装する必要があります。
WordPress で HTTP/2 を始めるにはどうすればよいですか?
WordPress ホストに HTTP/2 を実装するには、多くの技術的なノウハウが必要です。あなたが開発者またはネットワークでサーバーの管理が得意なら、ぜひ取り組んでください。
良いニュースとしては、優れた WordPress ホスティング プロバイダーのおかげで、WordPress への HTTP/2 の実装が簡単になるということです。たとえば、WPEngineとKinstaは両方ともHTTP/2をサポートしており、新しいプロトコルをサポートしていないサイト訪問者が信頼性の高い、完全に最適化されたバージョンのHTTP/1.1エクスペリエンスを確実に得るために必要なフォールバックをすべて備えています。
インターネット ユーザーの観点から見ると、ブラウザの最新バージョンをダウンロードする以外に何もする必要はありません。 Web サイトが HTTP/2 と互換性がある場合、ブラウザは新しいプロトコルを使用して自動的に通信します。ただし、HTTP/2 には完全な下位互換性があるため、古い HTTP をまだ使用している Web サイトは影響を受けません。つまり、座ってウェブサイトの高速読み込みを楽しむことができます。
WordPress の HTTP/2 のまとめ
WordPress の HTTP/2 は、世界有数のテクノロジーの 1 つに対する待望の革新的なアップデートです。ただし、HTTPS ウェブサイトのように、HTTP/2 が主流になるには多くの時間がかかります。そうは言っても、この記事の目的は、World Wide Web の様相を変える可能性があるこの素晴らしいテクノロジーを読者に紹介することです。
WordPress の HTTP/2 について考えていますか?質問がありますか?以下のコメントセクションでお知らせください。