ウェブソケットの原理と仕組みは何ですか?
WebSocketは、一つのTCP接続上で全二重通信を行うプロトコルであり、HTTPのハンドシェイク後に長期接続を確立することでリアルタイムの双方向通信を実現しています。
WebSocketプロトコルの仕組みは次の通りです:
- クライアントはWebSocketのハンドシェイクリクエストを発信する際、通常のHTTPリクエストと似ていますが、Upgrade、Connection、Sec-WebSocket-Keyなどの特殊なヘッダ情報が含まれています。
- WebSocketのハンドシェイクリクエストをサーバーが受信した後、リクエストの正当性を検証します。正当であれば、サーバーはステータスコード101を含むHTTPレスポンスを返し、ハンドシェイクが成功したことを示します。
- サーバーからのハンドシェイク応答をクライアントが受け取った後、クライアントも認証する必要があります。認証が通ると、クライアントとサーバーはTCP接続を介してリアルタイムの双方向通信を開始します。
- Both parties can send and receive messages using the WebSocket protocol, with messages being either text or binary data.
両方のパーティーは、WebSocketプロトコルを使用してメッセージを送受信できます。メッセージはテキストまたはバイナリデータである場合があります。 - どちらの側でもいつでもWebSocket接続を終了することができ、接続を終了する際には特別な閉じるフレームが送信されます。
WebSocketプロトコルの主な特徴は次のとおりです:
- リアルタイム性:WebSocketは長時間の接続を確立した後、継続的に新しいHTTPリクエストを送信することなく、双方向通信がリアルタイムで行えます。
- 低遅延:長時間接続が確立されているため、メッセージの転送が遅くなります。
- WebSocketプロトコルでは、通信コストが低く、HTTPプロトコルよりもメッセージの送信にバイナリフレームが使用されるため、通信負荷が少ない。
- WebSocketプロトコルを使用して、クロスオリジン通信をサポートし、ブラウザとサーバー間でリアルタイムの双方向通信を実現できます。