WebSocket は、単一の TCP 接続を介した全二重通信のためのプロトコルです。 WebSocket 通信プロトコルは、2011 年に IETF によって標準 RFC 6455 として指定され、RFC7936 によって補足されました。 WebSocket API も W3C によって標準として指定されています。
WebSocket を使用すると、クライアントとサーバー間のデータ交換が簡単になり、サーバーがアクティブにデータをクライアントにプッシュできるようになります。 WebSocket API では、ブラウザとサーバーはハンドシェイクを完了するだけでよく、双方向データ送信のために両者の間に永続的な接続を直接作成できます。
制御オーバーヘッドが少なくなります。接続の作成後にサーバーとクライアントの間でデータが交換される場合、プロトコル制御に使用されるパケット ヘッダーは比較的小さいです。拡張機能を使用しない場合、サーバーからクライアントへのコンテンツの場合、ヘッダー サイズは 2 ~ 10 バイト (パケット長に関連) のみですが、クライアントからサーバーへのコンテンツの場合は、追加のヘッダーを追加する必要があります。4 バイトのマスク。毎回完全なヘッダーを送信する HTTP リクエストと比較して、このオーバーヘッドは大幅に削減されます。
より強力なリアルタイム パフォーマンス。プロトコルは全二重であるため、サーバーはいつでもプロアクティブにデータをクライアントに送信できます。サーバーが応答する前にクライアントがリクエストを開始するのを待つ必要がある HTTP リクエストと比較すると、遅延が大幅に少なく、Comet などの同様の長いポーリング方法と比較しても、短期間により多くの回数データを配信できます。時間。
接続を維持します。 HTTP とは異なり、Websocket は最初に接続を作成する必要があるため、ステートフル プロトコルとなり、その後の通信中に一部の状態情報が省略される可能性があります。 HTTP リクエストでは、各リクエストにステータス情報 (ID 認証など) を含める必要がある場合があります。
バイナリサポートの改善。 Websocket はバイナリ フレームを定義しており、HTTP よりも簡単にバイナリ コンテンツを処理できます。
は拡張機能をサポートできます。 Websocket は拡張機能を定義しており、ユーザーはプロトコルを拡張して、カスタマイズされたサブプロトコルを実装できます。たとえば、一部のブラウザは圧縮などをサポートしています。
圧縮効果が向上しました。 HTTP 圧縮と比較して、適切な拡張サポートを備えた Websocket は、以前のコンテンツのコンテキストを継承し、同様のデータを送信する際の圧縮率を大幅に向上させることができます。
WebSocket は、TCP 上に作成された独立したプロトコルです。
Websocket は、HTTP/1.1 プロトコルの 101 ステータス コードを通じてハンドシェイクを実行します。
Websocket 接続を作成するには、ブラウザを通じてリクエストを行う必要があり、サーバーが応答します。このプロセスは、「ハンドシェイク」と呼ばれることがよくあります。
以上がウェブソケットとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。