HTTP/2 の詳細: HTTP/2 がどのように機能し、Web にとって何を意味するか
公開: 2023-02-092015 年、HTTP ネットワーク プロトコルの新しいバージョンである HTTP/2 が承認されました。 現在、ますます人気が高まっています。このプロトコルは、Apache および Nginx Web サーバー、Chrome、Firefox、Opera、Edge、および Safari ブラウザー、さらにはモバイル デバイスを既にサポートしています。
HTTP/2 サービスとサイトの数は常に増加しています。 近い将来、インターネットは、Web サイトのダウンロードを加速する新しいプロトコルへの移行を待っています。
これがサイトの構築、SEO、およびその他の側面にどのように影響するかを見てみましょう.
HTTP/2 とは何ですか?
HTTP/1.1 プロトコルは 1999 年から使用されており、時間の経過とともに 1 つの重大な問題が発生しました。 最新のサイトは、1999 年に人気があったものとは対照的に、JavaScript スクリプト、CSS スタイル、時にはフラッシュ アニメーションなど、さまざまな要素を使用しています。 それらすべてを転送すると、ブラウザーとサーバーはいくつかの接続を作成します。
HTTP/2 プロトコルは、次の機能により、Web サイトの速度を大幅に高速化します。
- 接続: 単一の TCP 接続を介して複数の要求を送信でき、応答を任意の順序で受信できます。 複数の TCP 接続を維持する必要はありません。
- スレッドの優先順位: クライアントはサーバーの優先順位を設定できます — どの種類のリソースが他のリソースよりも重要か。
- ヘッダー圧縮: HTTP ヘッダーのサイズを縮小できます。
- サーバー側からのデータのプッシュ送信: サーバーは、ユーザーが次に開くページに関するデータに基づいて、まだ要求されていないデータをクライアントに送信できます。
HTTP 2 プロトコルの開発は、Google が開発した SPDY プロトコルに基づいていました。 しかし、Google は、より有望な HTTP/2 へのさらなる SPDY サポートを拒否することを既に発表しています。
読む: WordPress サイトが遅い理由とスピードアップする方法を教えてください。
HTTP/2 の主な機能
- 多重化
- サーバープッシュ
- ヘッダー圧縮
- ストリームの優先順位付け
- フロー制御
HTTP と HTTP 2 の違い
最初のプロトコルに加えられた変更は、アプリケーションの動作方法に多くの変更を必要としません。 ただし、高速で動作する新しいアプリケーションには利点があります。 2 つのプロトコルの主な違いを以下に比較します。
特徴 | HTTP | HTTP2 |
---|---|---|
構文 | 高レベルの構文は同じです | 高レベルの構文は同じです |
データフレーミング | 変更されたデータ フレーミング | 強化されたデータ フレーミング |
クエリ | 限られたクエリ | その他のクエリ |
サーバーの応答性 | 応答性の制限 | 応答性の向上 |
効率的なウェブサイト | 最小限のリクエスト | 効率の向上 |
ヘッドオブライン ブロッキング | HTTP に存在 | HTTP2 で克服する |
多重化 | 現在ではない | 現在 |
ヘッダー圧縮 | 現在ではない | 現在 |
リクエストの優先順位付け | 現在ではない | 現在 |
以下は、HTTP/1 と HTTP/2 の基本的な違いを視覚的に表したものです (提供: http://ruzhekov.com ) 。
HTTP/2 の長所と短所
長所
- ページ読み込み速度の向上
- ネットワーク リソースの有効活用
- ユーザーエクスペリエンスの向上
- 最新の Web テクノロジーとの互換性の向上
短所
- プロトコルは一貫性がなく、複雑であると言われています
- プロトコル階層化の原則に違反します
- 重い暗号化コストがかかる
- ルーターなどの特定のデバイスと互換性がない
- 日和見暗号化の欠如
世界はなぜ HTTP/2 を必要としたのか?
- HTTP は 1991 年に初めて記述され、最新バージョンの HTTP/1.1 は 1999 年に承認され、現在も使用されています。
- Web サイトのサイズは長年にわたって大幅に拡大しており、読み込み時間が遅くなり、HTTP/1.1 を使用した同時接続数が制限されています。
- Web サイトの負荷を最適化するなどの一時的な解決策が実装されていますが、それらは短期的な解決策にすぎません。
- Google のエンジニアは 2009 年にプロトコルの改善に取り組み始め、SPDY プロトコルの作成につながりました。SPDY プロトコルはより高速で、ほとんどのブラウザでサポートされていますが、サーバー側のサポートが必要です。
- HTTP/2 は SPDY に基づいており、HTTP/1.1 と下位互換性があります。 すぐにアップグレードする必要はありませんが、最終的には、古いプロトコルではサイトの読み込みが遅くなる可能性があります.
HTTP/2 は本当に高速ですか?
HttpWatch Experts はいくつかのテストを実行し、HTTP 2 で深刻な高速化を発見しました。
以下のスクリーンショットは、HTTP / 1.1 を使用したページのダウンロード速度を示しています。
そして、このスクリーンショット — HTTP 2 を使用した結果:
ダウンロード速度が 23% 向上しました。 HttpWatch の専門家は、この技術はまだ完全には最適化されておらず、最大 30% の実際の高速化を期待していることにも注目しています。
HTTP/2 の方が高速に動作する理由
- HTTP/2 (多重化) の同じ接続内で複数のリクエストが送信されると、静的要素の読み込みが速くなります
- HTTP/2 での HTTP ヘッダーの圧縮により、サーバーとブラウザー間のデータ量が削減され、リソースが解放されます
- トレンドセッターのブラウザ (Google Chrome、Mozilla Firefox) による HTTP/2 サポートの暗号化接続によるセキュリティの向上
- HTTP/2 では優先順位が変更され、優先順位付けは適切な多重化機能のための望ましい方法です
- HTTP/2 での優先順位設定の欠如は、後でロードできるリソースが別のストリップと電力の一部を必要とするため、速度の低下につながる可能性があります。
ウェブサイトのページの読み込みを高速化することが重要なのはなぜですか?
- HTTP 2 のサポートは、Google の直接的なランキング要素ではありません
- ダウンロード速度は、Google にとって重要なランキング要素です
- HTTP/2 は Web サイトの速度にプラスの影響を与え、行動要因によりランキングにプラスの影響を与える可能性があります
- 高速なページは失敗率が低く、ユーザー エンゲージメントが向上する可能性があります
- Google Bot はまもなく HTTP/2 をサポートします
- 検索エンジンがアルゴリズムを変更するにつれて、HTTP 2 は将来ランキング要因になる可能性があります。
ウェブ開発者にとってのメリット
HTTP 2 を使用すると、HTTP/2 を使用せずにページの読み込みを高速化するように設計された古いトリックを取り除くことができます。 以下をリストします。
- ドメインシャーディングまたは複数の関連ドメインを使用してファイルをダウンロードし、より多くの TCP 接続を確立できるようにします。
- 画像のスプライト — 画像を 1 つのファイルに結合して、要求の数を減らします。 ただし、このようなファイルを表示するには、最初に完全にロードする必要があります。 さらに、大きなファイルを処理すると、より多くのメモリが消費されます。
- CSS と JavaScript ファイルを結合します。これは、要求の数を減らし、メモリ使用量を増やすためにも行われます。
- CSS や JavaScript をインラインで挿入したり、HTML ファイル内に画像を挿入したりして、接続数を減らします。 同時に、ファイル全体がロードされるまでページは表示されません。
- Cookie ファイルのないドメイン: Cookie が使用されていない別のドメインから画像、CSS、および JavaScript をダウンロードします。
HTTP 2 を実装するには?
HTTP 2 を実装するには、次の手順に従う必要があります。
- サーバー サポートの確認:サーバー ソフトウェアが HTTP 2 をサポートしていることを確認します。Apache、Nginx、IIS などの一般的なサーバー ソフトウェアには、HTTP 2 のサポートが組み込まれています。
- HTTP 2 を有効にする:サーバーが HTTP 2 をサポートしていることを確認したら、それを有効にする必要があります。 HTTP 2 を有効にする方法は、使用しているサーバー ソフトウェアによって異なります。
- HTTPS を使用する: HTTP 2 は HTTPS を使用した安全な接続を必要とするため、サーバーに SSL 証明書をインストールする必要があります。
- コードを更新する: HTTP 接続を処理するライブラリまたはフレームワークを使用している場合は、HTTP 2 をサポートしていることを確認してください。一部のライブラリでは、HTTP 2 を使用するために更新が必要になる場合があります。
- サイトのテスト:必要な変更を行った後、サイトをテストして、HTTP 2 で動作することを確認します。ブラウザ コンソールにエラーや警告がないか確認します。
- パフォーマンスの監視:サイトのパフォーマンスを定期的に監視して、HTTP 2 でスムーズに実行されていることを確認します。
- パフォーマンスの最適化を検討する: HTTP 2 を実装するとサイトのパフォーマンスが向上しますが、さらに最適化する機会がまだあるかもしれません。 たとえば、画像をスプライトに結合したり、画像を圧縮したり、HTTP 要求の数を減らしたりすると、パフォーマンスをさらに向上させることができます。
結論
HTTP 2 は HTTP 1.1 と下位互換性があり、移行は必要ありません。 ただし、Web サーバーとブラウザーが HTTP 2 を採用しているため、Web サイトの速度が低下しないように、サイト最適化技術を更新する必要がある場合があります。
読む: WordPress での HTTP から HTTPS への移行に関する完全ガイド
画像をスプライトにマージすると、圧縮が向上し、データのダウンロードが減少しますが、画像を埋め込むためのデータ URI の使用を避けることで、キャッシュを改善できます。 HTTP 2 ではドメイン シャーディングは不要になりました。これは、リソースの直接要求を許可し、追加の接続を作成することでパフォーマンスを低下させる可能性があるためです。
よくある質問
HTTP2 は何に使用されますか?
HTTP2 は、インターネット上でデータを転送するために使用されるプロトコルで、ページ、画像、動画などの Web コンテンツをサーバーからブラウザーに配信する速度とセキュリティを向上させます。 複数のリクエストを同時に送受信できるようにすることで、前身の HTTP 1.1 と比較して、ページの読み込みが高速になり、効率が向上します。
HTTP と HTTP2 の違いは何ですか?
HTTP2 は、HTTP の更新バージョンであり、以前のバージョンよりも高速で効率的です。 単一の接続を使用して複数のリソースをロードしますが、HTTP では複数の接続が必要でした。 HTTP2 はデータ圧縮と優先順位付けも提供するため、ユーザーのページ読み込み時間が短縮されます。
http2 が広く使用されていないのはなぜですか?
HTTP2 は、互換性と実装の問題により、広く使用されていません。 一部の古いデバイスやソフトウェアは HTTP2 をサポートしておらず、実装には専用のサーバーと SSL 証明書が必要です。