差HTTP0.9、HTTP1.0、HTTP1.1、HTTP2の

HTTP0.9(1991)

このバージョンでは、唯一のGETコマンド非常に簡単です

GET /index.htmlが

上記のコマンド、TCPコネクション(接続)は、サーバーへのクライアントの要求(リクエスト)ページのindex.htmlを確立した後に語りました。

本契約は、サーバは応答をHTML形式の文字列ができ、他のフォーマットには対応できません。

<html>
       <body>Hello World</body>
</html>

サーバが完成送信し、それがTCP接続をクローズ


HTTP1.0(1996)

任意の形式のコンテンツを送信することができます。これは、インターネットは、テキストのみを転送することはできませんが、また、画像、ビデオ、バイナリファイルを転送することができます。これは、インターネットの発展の基礎を築い

各通信(HTTPヘッダ)のヘッダ情報が含まれている必要があり、いくつかのメタデータを記述するために使用されます

GETコマンドに加えて、HEAD、POSTコマンドとコマンド、豊かなインタラクティブな手段ブラウザとサーバーを導入

その他の新機能には、ステータスコード(ステータス・コード)、マルチ文字セットのサポート、マルチパートの送信(マルチパートタイプ)などを許可(承認)、キャッシュ(キャッシュ)、コンテンツのエンコーディング(コンテンツのエンコーディング)を含みます


HTTP / 1.0バージョンの主な欠点は、各TCPコネクションは、要求を送信することができます。

データ送信が完了すると、接続が追加リソースの要求は、それが再作成新しい接続する必要がある場合でも、閉じられています。

それは、クライアントとサーバーのスリーウェイハンドシェイクを必要とし、伝送速度が遅い(スロースタート)の先頭であるため、新たなTCPコネクションコストが高いです。

だから、比較的貧弱なパフォーマンスのHTTP 1.0バージョン。


HTTP / 1.1(1997)

キープアライブ:1は、持続的な接続(持続的接続)の導入は、すなわち近いデフォルトでTCP接続、複数の要求を宣言接​​続せずに多重化することができません。クライアントとサーバーの活動は、あなたが接続を閉じるためのイニシアチブを取ることができ、いくつかの時間のためにお互いを見つけることができません。近くに、明示的にサーバーがTCP接続を閉じる必要があります。しかし、標準的な慣行は、最後の要求、送信接続時にクライアントがいることです

2、を有する、すなわちTCP接続管機構(PIPELINING)の導入、クライアントは、同時に複数の要求を送信することができます。これはさらに、HTTPプロトコルの効率が向上します。

例えば、クライアントは、2つのリソース要求を必要とします。その後、前の練習、送信して、サーバーの応答を待つ最初のAの要求にでTCP接続、およびBを発行した要求を受信し

パイプラインのメカニズムは、ブラウザがAとBは、リクエストを発行した要求できるようにすることですが、サーバーは要求に応答するように、順番にまだA、リクエスト・レスポンスの完了後にBです。

3、すなわち電流応答のデータ長宣言、コンテンツ長フィールド拡張の役割を実行する(TCPコネクションは現在複数の応答を送信することができ、応答に属するデータパケットを区別するためのメカニズムが存在すべきである結合)

図4は、チャンク転送符号化を使用して、いくつかの動的な時間のかかる操作、全ての操作が完了するまで待機するサーバーの必要性のために、データを送信するために、これは明らかに効率的ではありません。より良いアプローチは、送信、「ストリームモード」(ストリーム)置換「キャッシュモード」(バッファ)、データを生成することです

PUT、PATCH、HEAD、OPTIONS、DELETE:5,1.1バージョンも動詞のメソッドの数が追加されます。

さらに、新しいクライアントのヘッダ情報には、ドメインネームサーバを指定するには、Hostフィールドを要求します

[不足]
バージョン1.1は、接続TCPを多重化できますが、TCPと接続されているもののは、全てのデータ通信が順次行われます。Serverは、次の応答の前に応答を処理しました。応答が正面に特に遅い場合は、後ろのラインで待っている多くの要求があるでしょう。これは、(ヘッドオブラインブロッキング「ライン閉塞のヘッド」として知られています )。

この問題を回避するために、2つだけの方法:第二は、永続的な接続がより開いている間1は、要求の数を減らすことです。

これは、スクリプトやスタイルシートをマージするなどのWeb最適化技術、多くのにつながった、絵はように埋め込まれたCSSコード、ドメインフラグメント(ドメインシャーディング)とあります。HTTPプロトコルが良くなるように設計されている場合、この余分な作業を回避することができます。


HTTP / 2.0(2015)

簡単に言えば、HTTP / 2(本来HTTP2.0名前ハイパーテキスト転送プロトコルバージョン2)、HTTPプロトコルの第二の主要なバージョンです。

HTTP / 2 1999年HTTP1.1は最初の更新は、主SPDYプロトコルに基づいているので、解放HTTPプロトコルです。
HTTP2.0は、によって特徴づけられる:大幅ウェブの性能を向上させる、HTTP、方法、状態コード、およびURIヘッダフィールドのセマンティクスを変更しない場合に。

SPDYプロトコルとは何ですか

それはそれが何であるか、SPDYプロトコル - ちょうど名詞にリード線でHTTP2.0を導入するには?

SPDYは意味、ニックネームスピーディ音である「速いです。」

これは、TCPプロトコルに基づいて、Googleが開発したアプリケーション層のプロトコルです。

目標は短くページの読み込み時間と増加のセキュリティに多重化し、優先順位の技術、圧縮により、HTTPプロトコルのパフォーマンスを最適化することです。

核となるアイデアは、SPDYプロトコルのTCP接続を最小限に抑えることです。

SPDYはHTTPプロトコルに代わるものではありませんが、HTTPプロトコルの拡張機能。

おすすめ

転載: www.cnblogs.com/kai-/p/12655493.html