ホームページ  >  記事  >  WebSocketとhttpの違い

WebSocketとhttpの違い

藏色散人
藏色散人オリジナル
2020-12-07 10:24:1956302ブラウズ

WebSocket と http の違い: 1. WebSocket は双方向通信プロトコルであり、Socket プロトコルをシミュレートし、双方向で情報を送受信できますが、HTTP は一方向です; 2. WebSocket は次のことを必要とします。接続を確立するためのブラウザとサーバー間のハンドシェイク。一方、http はブラウザがサーバーへの接続を開始する場所です。

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 と同様、典型的なアプリケーション層プロトコルです。

WebSocketとhttpの違い

概要:

Socket は伝送制御層インターフェイスであり、WebSocket はアプリケーション層プロトコルです。

3. WebSocket と HTTP の関係

関係図:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。