HTTP、HTTPS、SPDY、HTTP2を一度に理解する
この記事の内容は、HTTP、HTTPS、SPDY、HTTP2 を一度に理解することに関するものであり、一定の参考値があるため、必要に応じて使用してください。お友達の方は参考にしていただければ幸いです。
インターネット通信プロトコルのベテランとして、HTTP プロトコルは現在 3 回のバージョン変更を経ており、最新バージョンは HTTP2.0 です。これは誰もがよく知っていると思います。 。今日は HTTP の過去と現在について詳しく説明します。
HTTP/0.9
HTTP の最初のバージョンは 1991 年に誕生しました。この最初のバージョンは現在と比べて非常にシンプルで、HTTP ヘッダーやステータス コードがなく、バージョン番号もありませんでしたが、後に他のバージョンの HTTP と区別するためにバージョン番号が 0.9 に設定されました。 HTTP/0.9 は Get という 1 つのメソッドのみをサポートしており、リクエストは 1 行のみです。
GET /hello.html
応答も非常に単純で、HTML ドキュメント自体が含まれるだけです。
<HTML> Hello world </HTML>
TCP 接続が確立されると、サーバーは HTML 形式の文字列をクライアントに返します。送信後はTCP接続を切断してください。ステータス コードやエラー コードがないため、サーバー処理中にエラーが発生した場合は、問題の説明情報を含む特別な HTML ファイルのみが返されます。これは HTTP/0.9 の最も古いバージョンです。
HTTP/1.0
1996 年に HTTP/1.0 バージョンがリリースされ、HTTP の送信内容がテキストに加えて送信できるようになりました。写真、ビデオなど。これがインターネットの発展の基礎を築きました。 HTTP/0.9 と比較すると、HTTP/1.0 には主に次の機能があります。
リクエストと応答は HTTP ヘッダーをサポートし、ステータス コードが追加され、応答オブジェクトの先頭は応答ステータス行になります
プロトコル バージョン HEAD メソッドと POST メソッドをサポートする情報をリクエストとともに送信する必要があります。
HTML ファイル以外の他のタイプのコンテンツの送信をサポートします。
典型的な HTTP/1.0 リクエストは次のようになります:
GET /hello.html HTTP/1.0 User-Agent:NCSA_Mosaic/2.0(Windows3.1) 200 OK Date: Tue, 15 Nov 1996 08:12:31 GMT Server: CERN/3.0 libwww/2.17 Content-Type: text/html <HTML> 一个包含图片的页面 <img src="/static/imghw/default1.png" data-src="/smile.gif" class="lazy" alt="HTTP、HTTPS、SPDY、HTTP2を一度に理解する" > </HTML>
HTTP/1.1
HTTP/1.1 は HTTP/1.0 の数か月後にリリースされました。 HTTP/1.1 は、HTTP/1.0 をさらに改良したものです。HTTP1.1 では、主に次の点が改善されています。
接続を再利用できる
パイプラインの追加: HTTP パイプラインは、送信中にサーバーからの応答を待たずに、複数の HTTP リクエストをバッチで送信します。パイプライン メカニズムは、永続的な接続を通じて完了する必要があります。ブラウザによる HTTP リクエストのバッチ送信により、特に送信遅延 (ラグ/レイテンシー) が大きい場合に、ページの読み込み時間を大幅に短縮できます。注意すべき点の 1 つは、GET メソッドや HEAD メソッドなどのパイプラインを使用できるのはべき等リクエストのみであることです。
チャンクエンコーディング送信: このエンコーディングはエンティティをチャンクで送信し、長さが送信の終了を示す 0 ブロックになるまでブロックごとに長さを示します。これは、エンティティの長さが不明な場合に特に便利です (データベースによって動的に生成されるデータなど)
etag、cache-control などのキャッシュ制御メカニズムをさらに導入します。
言語、エンコーディング、タイプなどを含むコンテンツ ネゴシエーション メカニズムを導入します。クライアントとサーバーが最も適切なコンテンツ交換について合意できるようにします。
要求メッセージと応答メッセージの両方が Host ヘッダー フィールドをサポートします。HTTP1.0 では、各サーバーは一意の IP アドレスにバインドされていると見なされます。の場合、リクエスト メッセージ内の URL にはホスト名 (hostname) が渡されません。しかし、仮想ホスト技術の発展により、物理サーバー上に複数の仮想ホスト (マルチホーム Web サーバー) が存在し、IP アドレスを共有できるようになりました。したがって、Host ヘッダーの導入が必要です。
OPTIONS、PUT、DELETE、TRACE、CONNECT メソッドを追加
HTTP/1.1 は多くの点で最適化されており、最も広く使用されているプロトコル バージョンとして、すでに多くのネットワークを満足させることができます。 Web ページがますます複雑になり、独立したアプリケーションに進化するにつれて、HTTP/1.1 ではいくつかの問題が徐々に明らかになります:
データを送信するときは、毎回接続を再確立する必要があります。不親切です
送信内容はプレーンテキストであり、安全性が十分ではありません
ヘッダーの内容が大きすぎ、リクエストのたびにヘッダーがあまり変更されないため、無駄が発生します
サービスへのキープアライブ 最後にはパフォーマンスへのプレッシャーがもたらされる
これらの問題を解決するために、HTTPS と SPDY が登場しました。
SPDY
実際、SPDY は新しいプロトコルではなく、HTTP の前のセッション層です。
2010 年から 2015 年にかけて、Google は実験的な SPDY プロトコルを実装することで、クライアントとサーバーの間でデータを交換する代替方法を実証しました。ブラウザーとサーバーサイドの開発者の注目を集め、応答量の増加を明確にし、データ転送の複雑さを解決します。 SPDY プロジェクトを開始するときのデフォルトの目標は、
ページ読み込み時間 (PLT) を 50% 削減することです。
Web サイトの作成者がコンテンツを変更する必要はありません。
ネットワーク インフラストラクチャを変更せずに、展開の複雑さを最小限に抑えます。
オープンソース コミュニティと協力して、この新しいプロトコルを開発しています。
実際のパフォーマンス データを収集して、この実験プロトコルが有効かどうかを検証します。
ページの読み込み時間を短縮するという目標を達成するために、SPDY は新しいバイナリ フレーミング データ レイヤーを導入して、多方向のリクエストと応答を可能にし、優先順位を付け、不要なネットワーク遅延を最小限に抑え、ネットワーク遅延をより効率的に利用することを目的としています。基礎となる TCP 接続。
HTTP/2.0
2015 年に HTTP/2.0 が登場しました。まず HTTP/2.0 の特徴を紹介します。
バイナリ フレーム層を使用する: HTTP のセマンティクス、ステータス コード、 URI およびヘッダー フィールドは、HTTP1.1 のパフォーマンス制限を突破し、送信パフォーマンスを向上させ、低遅延と高スループットを実現します。バイナリ フレーム層では、HTTP2.0 は送信されるすべての情報を小さなメッセージとフレームに分割し、バイナリ形式でエンコードします。HTTP1.x のヘッダー情報はヘッダー フレームにカプセル化され、リクエストの本文はヘッダー フレームにカプセル化されます。データフレーム。
バイナリ フレーミング
多重化: HTTP/1.x では、長時間の接続が有効になっている場合でも、帯域幅が十分な場合、リクエストはシリアルに送信されます。 HTTP/2.0 では、帯域幅の使用率を向上させるために複数のリクエストを並行して送信できる多重化方式が採用されています。
多重化
データ フローの優先順位: リクエストは同時に送信できるため、ブラウザーが主要な CSS または JS ファイルがページのレンダリングを完了するのを待っている場合、サーバー画像リソースの送信に重点を置いていますか? HTTP/2.0 では、データ フローの優先順位値を設定できます。この優先順位値により、クライアントとサーバーがさまざまなフローを処理するために使用するさまざまな優先順位戦略が決まります。
サーバー側プッシュ: HTTP/2.0 では、サーバーはリクエスト以外のコンテンツをクライアントに送信できます。たとえば、ページがリクエストされると、サーバーはページ関連のロゴ、CSS をプッシュします。サーバーはクライアントがこれらを使用すると考えるため、リクエストが来るまで待ってから送信するのではなく、他のファイルをクライアントに直接送信します。これは、すべてのリソースを 1 つの HTML ドキュメントに集めるのと同じです。
ヘッダー圧縮: ヘッダー テーブルを使用して、以前に送信されたキーと値のペアを追跡し、各リクエストと応答で同じコンテンツが送信されることはありません。
上記は、HTTP、HTTPS、SPDY、および HTTP2 を一度に理解するための完全な入門書です。Html5 チュートリアル について詳しく知りたい場合は、PHP 中国語 Web サイトに注目してください。 。
以上がHTTP、HTTPS、SPDY、HTTP2を一度に理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











HTTP ステータス コード 520 は、サーバーがリクエストの処理中に不明なエラーに遭遇し、より具体的な情報を提供できないことを意味します。サーバーがリクエストを処理しているときに不明なエラーが発生したことを示すために使用されます。サーバー構成の問題、ネットワークの問題、またはその他の不明な理由が原因である可能性があります。これは通常、サーバー構成の問題、ネットワークの問題、サーバーの過負荷、またはコーディング エラーが原因で発生します。ステータス コード 520 エラーが発生した場合は、Web サイト管理者またはテクニカル サポート チームに連絡して詳細情報と支援を得ることが最善です。

HTTP ステータス コード 403 は、サーバーがクライアントの要求を拒否したことを意味します。 http ステータス コード 403 の解決策は次のとおりです: 1. 認証資格情報を確認します。サーバーが認証を必要とする場合は、正しい資格情報が提供されていることを確認します。2. IP アドレス制限を確認します。サーバーが IP アドレスを制限している場合は、クライアントの IP アドレスは制限されています。ホワイトリストに登録されているか、ブラックリストに登録されていません。3. ファイルのアクセス許可設定を確認します。403 ステータス コードがファイルまたはディレクトリのアクセス許可設定に関連している場合は、クライアントがこれらのファイルまたはディレクトリにアクセスするための十分なアクセス許可を持っていることを確認してください。等

NginxProxyManager を使用して HTTPS プロトコルでリバース プロキシを実装する方法 近年、インターネットの普及とアプリケーション シナリオの多様化に伴い、Web サイトやアプリケーションへのアクセス方法はますます複雑になっています。 Web サイトへのアクセス効率とセキュリティを向上させるために、多くの Web サイトはユーザーのリクエストを処理するためにリバース プロキシを使用し始めています。 HTTPS プロトコルのリバース プロキシは、ユーザーのプライバシーを保護し、通信のセキュリティを確保する上で重要な役割を果たします。この記事ではNginxProxyの使い方を紹介します。

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

NginxProxyManager を使用して HTTP から HTTPS への自動ジャンプを実装する方法 インターネットの発展に伴い、ますます多くの Web サイトが HTTPS プロトコルを使用してデータ送信を暗号化し、データ セキュリティとユーザーのプライバシー保護を向上させ始めています。 HTTPS プロトコルは SSL 証明書のサポートを必要とするため、HTTPS プロトコルを展開する際には特定の技術サポートが必要です。 Nginx は強力で一般的に使用される HTTP サーバーおよびリバース プロキシ サーバーであり、NginxProxy

クイック アプリケーション: PHP の実践的な開発ケース分析 複数ファイルの非同期 HTTP ダウンロード インターネットの発展に伴い、ファイル ダウンロード機能は多くの Web サイトやアプリケーションの基本的なニーズの 1 つになりました。複数のファイルを同時にダウンロードする必要があるシナリオでは、従来の同期ダウンロード方法は非効率的で時間がかかることがよくあります。このため、PHP を使用して HTTP 経由で複数のファイルを非同期にダウンロードするソリューションがますます一般的になってきています。この記事では、実際の開発事例を通して、PHP 非同期 HTTP の使用方法を詳しく分析します。

HTTP ステータス コード 200: 成功した応答の意味と目的を調べる HTTP ステータス コードは、サーバーの応答のステータスを示すために使用される数値コードです。このうち、ステータス コード 200 は、リクエストがサーバーによって正常に処理されたことを示します。この記事では、HTTP ステータス コード 200 の具体的な意味と使用法について説明します。まず、HTTP ステータス コードの分類を理解しましょう。ステータス コードは、1xx、2xx、3xx、4xx、5xx の 5 つのカテゴリに分類されます。このうち、2xx は成功応答を示します。 200 は 2xx で最も一般的なステータス コードです

C# におけるネットワーク通信とセキュリティの一般的な問題と解決策 今日のインターネット時代では、ネットワーク通信はソフトウェア開発に不可欠な部分となっています。 C# では通常、データ送信のセキュリティ、ネットワーク接続の安定性など、ネットワーク通信の問題が発生します。この記事では、C# における一般的なネットワーク通信とセキュリティの問題について詳しく説明し、対応する解決策とコード例を提供します。 1. ネットワーク通信の問題 ネットワーク接続の中断: ネットワーク通信プロセス中に、ネットワーク接続が中断される場合があります。
