WebSocket と http の違い: 1. WebSocket は双方向通信プロトコルであり、Socket プロトコルをシミュレートし、双方向で情報を送受信できますが、HTTP は一方向です; 2. WebSocket は次のことを必要とします。接続を確立するためのブラウザとサーバー間のハンドシェイク。一方、http はブラウザがサーバーへの接続を開始する場所です。
#この記事の動作環境: Windows 7 システム、Dell G3 コンピューター。
おすすめ: 「プログラミング ビデオ 」
1. WebSocket とは何ですか?
WebSocket は HTML5 仕様で提案されているプロトコルで、現在は Wanduzi の IE ブラウザを除き、他のブラウザでも基本的にサポートされています。これは、ルーツがなければ決して変更されないプロトコルであり、TCP プロトコルをベースにしており、HTTP プロトコルと共存します。
WebSocket は HTML5 のプロトコルです。 HTML5 Web ソケット仕様は、Web ソケット プロトコルを使用したページとリモート ホスト間の全二重通信をサポートする Web ソケット API を定義します。 WebSocket インターフェイスを導入し、単一のソケットを通じて Web 上で動作する全二重通信チャネルを定義します。
HTML5 Web ソケットは、最小限のオーバーヘッドで効率的に Web 接続を提供します。多くの場合、リアルタイム データをクライアントにプッシュしたり、全二重接続をシミュレートするために 2 つの HTTP 接続を維持したりする必要がある古いポーリングまたはロング ポーリング (Comet) と比較して、不必要なネットワーク トラフィックと遅延が大幅に削減されます。
HTML5 Web ソケットを使用して Web クライアントからリモート エンドポイントに接続するには、新しい WebSocket インスタンスを作成し、接続先のリモート エンドポイントを表す URL をそれに指定します。
この仕様では、WebSocket 接続と安全な WebSocket 接続をそれぞれ表す ws:// モードと wss:// モードを定義します。これは http:// と https:// の違いに似ています。
WebSocket 接続は、クライアントとサーバー間の HTTP プロトコルの最初のハンドシェイク フェーズ中に、Web Socket プロトコルにアップグレードすることによって確立されます。基礎となる層は依然として TCP/IP 接続です。
2. WebSocket と Socket の関係
Socket は実際にはプロトコルではなく、TCP または UDP を使用する便宜のために抽象化された層であり、アプリケーション層と送信層の間に位置します。制御層: 間のインターフェイスのセット。
"ソケットは、アプリケーション層と TCP/IP プロトコル ファミリの間で通信する中間ソフトウェア抽象化層です。これは、TCP/IP プロトコルを呼び出すための API セットを提供するインターフェイスのセットです。
デザイン モードでは、ソケットは実際にはファサード モデルであり、複雑な TCP/IP プロトコル ファミリをソケット インターフェイスの背後に隠します。ユーザーにとっては、単純なインターフェイスのセットがすべてであり、ソケットが指定されたデータに準拠するようにデータを編成できるようになります。 "
2 つのホストが通信する場合、Socket を介して接続する必要があり、Socket は TCP/IP プロトコルを使用して TCP 接続を確立します。 TCP 接続は基礎となる IP プロトコルにより多く依存しますが、IP プロトコル接続はリンク層などの下位層に依存します。
WebSocket は、HTTP と同様、典型的なアプリケーション層プロトコルです。
概要:
Socket は伝送制御層インターフェイスであり、WebSocket はアプリケーション層プロトコルです。
3. WebSocket と HTTP の関係
関係図:
同じ点
どちらもベースにしていますTCP はすべて信頼性の高い伝送プロトコルです。
はすべてアプリケーション層プロトコルです。
違い
WebSocket は、Socket プロトコルをシミュレートし、双方向で情報を送受信できる双方向通信プロトコルです。 HTTP は一方向です。
WebSocket では、接続を確立するためにブラウザとサーバー間のハンドシェイクが必要です。 http では、ブラウザがサーバーへの接続を開始しますが、サーバーはこの接続を事前に知りません。
連絡先
WebSocket がハンドシェイクを確立すると、データは HTTP 経由で送信されます。ただし、確立後は実際の送信時には HTTP プロトコルは必要ありません。
概要:
WebSocket では、サーバーとブラウザは HTTP プロトコルを通じてハンドシェイク アクションを実行し、データ送信用に別の TCP 通信チャネルを確立するだけで済みます。
WebSocket 接続のプロセスは次のとおりです:
まず、クライアントは http リクエストを開始し、3 回のハンドシェイクの後、TCP 接続が確立されます。http リクエストには、サポートされているバージョン番号などの情報が保存されます。 WebSocket による (アップグレード、接続、WebSocket バージョンなど);
次に、サーバーはクライアントのハンドシェイク要求を受信した後、HTTP プロトコルを使用してデータをフィードバックします;
最後に、クライアントは接続が成功したことを示すメッセージを受信し、TCP トランスポート チャネルを介して全二重通信が開始されます。
以上がWebSocketとhttpの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。