HTTP 2.0 とは?
HTTP/2 (ハイパーテキスト転送プロトコル バージョン 2、当初の名前は HTTP 2.0) は、HTTP プロトコルの 2 番目のメジャー バージョンです。世界中で使用されています。ワイドウェブ。 HTTP/2 は、1999 年の HTTP 1.1 のリリース以来、HTTP プロトコルの最初のアップデートです。これは主に SPDY プロトコル (ネットワーク遅延を最小限に抑え、ネットワーク速度を向上させ、最適化するために Google によって開発された TCP ベースのアプリケーション層プロトコル) に基づいています。ユーザーのネットワーク使用量、経験)。
HTTP 1.1 と比較した主な違いは次のとおりです。
HTTP/2 はテキスト形式ではなくバイナリ形式を使用します
HTTP/2 は完全に多重化されており、順序付けやブロック化は行われていません - 並列処理に必要な接続は 1 つだけです
ヘッダー圧縮を使用することで、HTTP/2 はオーバーヘッドを削減します
HTTP/2 では、サーバーが応答をクライアント キャッシュに積極的に「プッシュ」するためのオプションです。
推奨コース: PHP チュートリアル 。
なぜ HTTP/2 はバイナリなのでしょうか?
HTTP/1.x などのテキスト プロトコルと比較して、バイナリ プロトコルは解析効率が高く、「オンライン」がよりコンパクトで、さらに重要なことに、エラーが少ないです。
なぜ HTTP/2 には多重化が必要なのですか?
HTTP/1.x には、行頭ブロックと呼ばれる問題があります。接続は一度に 1 つのリクエストのみを送信する方が効率的ですが、リクエストの数が増えると速度が遅くなります。 HTTP/1.1 はこの問題を解決するためにパイプラインを使用しようとしましたが、その効果は理想的ではありませんでした (データ量が多かったり、応答が遅かったりすると、その背後にあるリクエストが妨げられます)。また、ネットワーク メディア (仲介) やサーバーがサポートできないため、パイプラインが適切であるため、デプロイメントが困難になります。多重化は、複数のメッセージの要求と応答を同時に処理でき、送信プロセス中に 1 つのメッセージを別のメッセージと混合することもできるため、これらの問題を非常にうまく解決できます。したがって、クライアントはページをロードするために 1 つの接続のみを必要とします。
なぜメッセージ ヘッダーを圧縮する必要があるのですか?
ページに読み込むリソースが 80 個あると仮定します (この数は今日の Web では非常に控えめです)。各リクエストには 1400 バイトのメッセージ ヘッダーがあり (Cookie と参照の存在により、これも珍しいことではありません)、これらのメッセージ ヘッダーを取得するには、「オンライン」で少なくとも 7 ~ 8 回の往復が必要です。これには応答時間は含まれません。これは、クライアントから応答を返すのにかかる時間だけです。これはすべて、既知のパケットの数に基づいて、どのパケットをフェッチするかを決定する TCP のスロースタート メカニズムによるものです。これにより、最初の数往復で送信できるパケットの数が明らかに制限されます。対照的に、ヘッダーをわずかに圧縮するだけでも、それらのリクエストを 1 往復 (場合によっては 1 パケット) だけで処理できるようになります。このオーバーヘッドは、特にモバイル クライアント アプリケーションを考慮した場合に節約できます。モバイル クライアント アプリケーションでは、良好な条件下でも通常、数百ミリ秒の往復遅延が発生します。
サーバープッシュの利点は何ですか?
ブラウザが Web ページをリクエストすると、サーバーは HTML を送り返します。サーバーが JavaScript、画像、CSS の送信を開始する前に、サーバーはブラウザが Web ページを解析するのを待つ必要があります。 HTML を使用してすべてのインライン リソース リクエストを送信します。サーバー プッシュ サービスは、クライアントが必要と考えるコンテンツをクライアントのキャッシュに「プッシュ」することで、ラウンドトリップの遅延を回避します。
以上がhttp2.0とhttp1.1の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。