SPDY は、Google によって開発された伝送制御プロトコル (TCP) に基づくアプリケーション層プロトコルであり、開発チームは SPDY が正式な標準になるよう推進しています (現在はインターネットドラフト)。スパイディ このプロトコルは、圧縮、多重化、優先順位付けを通じて Web ページの読み込み時間を短縮し、セキュリティを向上させるように設計されています。 (SPDY は Speedy の愛称であり、より速いという意味です)
SPDY と HTTP の関係
SPDY プロトコルの中心的な考え方は、接続数を最小限に抑えることです。また、HTTP のセマンティクスは大幅に変更されていません。具体的には、SPDY HTTPのメソッドとヘッダーを使用しますが、一部のヘッダーを削除し、接続やデータ転送形式を管理するHTTPの部分を書き換えているため、基本的にHTTPと互換性があります。
Google は SPDY ホワイトペーパーの中で、SPDY がプロトコル スタックに浸透し、トランスポート層プロトコル (TCP) を置き換えると述べていますが、これは現時点では展開と実装が非常に難しいため、 Google は、まずアプリケーション層プロトコル HTTP を改善し、まず SSL の上にセッション層を追加して SPDY プロトコルを実装する予定ですが、HTTP の GET および POST メッセージ形式は変更されません。つまり、既存のサーバー アプリケーションをすべて変更する必要はありません。変更されました。
したがって、現時点では、SPDY の目的は HTTP を強化し、HTTP のより良い実装とサポートを提供することです。今後SPDYが普及したら王子様のジャコウネコに取って代わられるかどうかについて。 HTTP に革命を起こし、インターネット全体に革命を起こすのが Google の仕事です。
なぜ新しい SPDY を構築するのでしょうか?
World Wide Web の父であるティム バーナーズ リーが HTTP を発明し、今日のインターネット上で最も人気のあるプロトコルになるよう推進してから 10 年以上が経過しました (現在の HTTP 1.1 仕様も停滞しています)。 13年)、今と同じように WebSocket プロトコルの登場や現在のネットワーク環境の変化、通信内容の変化など、WEB テクノロジーの急速な発展、特に HTML5 の進化に伴い、当初の HTTP 仕様では人々の HTTP ニーズを満たせなくなってきました。さらなる開発のため、HTTPbis の取り組み 現在 HTTP によって課されている制限の多くに対処することを期待して、HTTP 2.0 を検討するグループが形成され、認可されました。 SPDY は、次世代のインターネット通信を目指して、HTTP が 1.1 から 2.0 に移行しようとしているときに Google によって立ち上げられたプロトコルであり、長い間、HTTP 2.0 の唯一の実行可能なオプションと考えられてきました。
HTTPプロトコルの欠点
1. 一方向の接続リクエストは非効率です
HTTPプロトコルの最大の欠点は、各TCP接続が1つのHTTPリクエスト、つまり各HTTP接続にのみ対応できることです。 1 つのリソースのみを要求する場合、ブラウザは複数の接続を確立することによってのみ解決できます。加えて HTTP のリクエストは厳密に先入れ先出し (FIFO) です。途中のリクエストの処理に時間がかかると、後続のリクエストはブロックされます。
(注: HTTP パイプラインにより接続リクエストは改善されましたが、複雑さが大幅に増加しており、普及していません)
2. HTTP では、クライアントによってのみリクエストをアクティブに開始できます
クライアントがリクエストを送信するまで待機できることは、プリロードの現在のステータスを満たす上での制約になります。
3. HTTPヘッダーの冗長性
HTTPヘッダーは同じセッション内で繰り返し送信され、User-Agent、Host、および繰り返し送信する必要のないその他の情報などの冗長な情報は、繰り返し送信されるため、帯域幅とリソースが無駄になります。
SPDY プロトコルの利点
1. リクエストの多重化の最適化
SPDY は、SPDY 接続内で無制限の並列リクエストを許可することを規定しており、複数の同時 HTTP リクエストが TCP セッションを共有できるようになります。このようにして、SPDY は単一の TCP に多重化されます。 リクエストごとに個別の接続を開くのではなく、接続上で複数のリクエストを行うことで、Web ページ上のすべてのリソースを転送するために 1 つの TCP 接続だけを確立できます。これにより、メッセージのやり取りのラウンドトリップ時間が短縮されるだけでなく、新しい接続の作成によって生じる遅延。TCP をより効率的にします。
さらに、SPDYの多重化は優先順位を設定することができ、先入れ先出しに従ってリクエストを1つずつ厳密に処理する従来のHTTPとは異なり、CSSなどのより重要なリソースを最初に選択して送信します。 Web サイトのアイコンなどの重要度の低いリソースは、重要ではないリソースがネットワーク チャネルを占有する問題を回避し、パフォーマンスを向上させることができます。 TCPのパフォーマンス。
2. サーバープッシュテクノロジーをサポート
このプリロードにより、サーバーはクライアントへの通信をアクティブに開始し、ユーザーを高速なネットワークに維持できます。
3. SPDY は HTTP ヘッダーを圧縮します。
圧縮後、冗長なデータ送信によって生じる待ち時間と帯域幅を節約できます。
4. SSL 伝送プロトコルの使用の義務化
Google は、Web の将来の発展の方向性は、SSL 暗号化を要求した後、より安全になると考えています。
SPDYプロトコルの意味
Google によると、SPDY は Web を高速化すること (Web 全体を高速化すること) のみを目的として作成され、その名前は SPDY(スピーディ)もそれを示唆しているようだ。では、SPDY の重要性は何でしょうか?
1. 一般ユーザー:
ユーザーにとって、ブラウザの下に隠されている SPDY と HTTP に違いはありませんが、Google サービスは Chrome 上で非常に高速であると感じられます。 SPDY の功績です。また、Webサイトの情報送信は暗号化されるため、情報が傍受されるなどの心配がなく、セキュリティと機密性が大幅に向上します。
2. フロントエンドスタッフ:
現在、各ページが読み込まれるときに CSS スプライトなどのメソッドを使用して、ページの効率を向上させることが非常に重要です。ページがロードされました、写真、アイコン これらはすべて 1 つの接続を要求し、さらには、1 ページ上の画像リクエストの数を減らすために、異なるページ上の異なる画像を参照します。 SPDY のリクエストの最適化により、リクエストの順序を再配置できるようになり、ページがロードされるときの画像リクエストの影響を大幅に軽減できます。たとえば、Geek Park の 2012 Innovation Conference や Geek Park の第 27 回 Great Wall Conference など、Geek Park の登録ページの登録ユーザーが多すぎる場合、アバターのリクエストが遅くなるのは明らかです。タオバオやウェイボーを頻繁に利用する人ならよく理解していると思いますが、インターネットの速度が少し遅くなると、ページの読み込みに異常が発生することがあります。 App Store (地域によるサーバー遅延を除く)。以下のビデオに示すように、Doujia などのアプリケーション配布プラットフォームのアプリケーション アイコンの更新が遅くなります。
3. 運用および保守担当者:
SPDY は接続数を減らすと同時に、サーバー上の各クライアントが占有するリソースも削減し、より多くのメモリと CPU を解放します。さらに、SPDY を組み合わせると、ブラウジング速度が 2 倍になり、ページの読み込み遅延が最大 2 倍改善されます。 64%。
みんなに支持されているSPDYプロトコル
ChromeブラウザやGmailなどのGoogleネットワークサービスを使用している場合、実際にはHTTP経由でこれらのサービスにアクセスしていません。ブラウザで開く chrome://net-internals/#spdy では、すでに SPDY プロトコルを使用していることがわかります。 (Google 独自の Gmail、Google Plus、その他の Google サービスに加え、Twitter や Webtide などの他の公共サイトもこのプロトコルをサポートしています。中国では、WebKit をベースにした Wandoujia 2.0 が Chrome の SPDY テクノロジーを導入してさらに改善する予定であるとも述べています)速度: SPDY の実装には、ブラウザ クライアントと Web サーバーの両方からのサポートが必要です。言うまでもなく、Google の Chrome および Chromium シリーズは、クライアント ブラウザで SPDY をすでにサポートしています。 Mozilla の Firefox も、Firefox 13 以降デフォルトで SPDY をサポートしています。 Amazon の Silk による SPDY の使用は、実際には Google の Chrome や Firefox と比べても悪くありません。
Web サーバーに関しては、最も人気があり広く普及している Apache、Netty、Jeety、Varnish、Erlang、Hightide アプリケーション サーバーや Node.js サーバーも SPDY のサポートを発表しました。 (Nginx も SPDY をサポートすると述べています)
SPDY をデプロイするにはどうすればよいですか?
最近、Google は最も人気のある Web サーバー Apache 用のプラグイン mod_spdy を正式にリリースしました。これをダウンロードしてインストールすると、Apache サーバーで使用できるようになります。 SPDY プロトコルは、Chrome、FireFox など、SPDY プロトコルと互換性のあるブラウザと通信します。前述したように、SPDY は HTTPS 上で実行され、非 HTTPS トラフィックは mod_spdy の影響を受けません。
SPDY 導入要件:
1. Apache 2.2 (≥2.2.4)
2. mod_ssl モジュールが有効である
SPDY 導入手順:
1. mod_spdy モジュールをダウンロード
ダウンロードページに移動して、対応するシステムのインストールパッケージをダウンロードします2. mod_spdyモジュールをインストールします
システムターミナルで次のコマンドラインを実行します
dpkg -i mod-spdy-*. deb
apt-get -f install
-システムはDebian/Ubuntuです
---------------- -------- ----------------------------------
yum インストール先 ( 「at」がまだインストールされていない場合)
rpm -U mod-spdy-*.rpm
-システムは CentOS/Fedora です
3 サーバー (Apache) を再起動します。
sudo /etc/init.d /apache2 restart (Debian/Ubuntu)4. 有効になっているかどうかを確認します
Chrome ブラウザを開き、chrome://net- と入力して移動します。 Internals/#spdy ページにアクセスし、識別バーの中央にホスト名が表示されるかどうかを確認します。表示されている場合は、展開が完了していることを意味します。表示されない場合は、サーバー エラー ログ (error.log) を確認してください。
上記では、nginx の spdy プロトコルをその側面も含めて紹介していますが、PHP チュートリアルに興味のある友人に役立つことを願っています。