WebSocketのプロトコル
WebSocketは新しい契約ではなく、接続を確立するためにHTTPプロトコルを使用するように、それはブラウザとサーバ間の無制限の双方向通信チャネルを確立することを目指して、例えば、いつでもサーバーにメッセージを送信することができますブラウザ
要求は、標準のHTTPプロトコル要求、次の形式であるため、WebSocketの接続は、ブラウザによって開始する必要があります。
WSをGET:// localhostを:3000 / WS / HTTP / 1.1チャット ホスト:localhostの アップグレード:のWebSocket 接続を:アップグレード 起源:のhttp:// localhostを:3000 秒-のWebSocket-キー:クライアント、ランダム文字列 秒 -WebSocket-バージョン:13
リクエストと通常のHTTPいくつかの違いがあります。
- GETリクエストアドレスは/パス/に類似していないが、WSで://アドレスの先頭に。
- 要求ヘッダーのアップグレード:のWebSocketと接続:アップグレードは、接続のWebSocket接続に変換されることを示します。
- SEC-のWebSocketキーは、接続を識別するために使用され、データを暗号化するために使用されていません。
- SEC-のWebSocket-バージョンのWebSocketプロトコルのバージョンを指定します
サーバーが要求を受け入れた場合、その後、それは次の応答を返します。
HTTP / 1.1 101 スイッチングプロトコルは アップグレード:のWebSocket 接続:アップグレード 秒 -WebSocket-受け入れ:サーバランダム文字列
応答コードは、101
現在のHTTPプロトコル接続を変更するために、変更されたプロトコルが起こっていることを示すUpgrade: websocket
指定のWebSocketプロトコル。
バージョン番号とサブ契約者は、その上のデータ形式を理解し、圧縮をサポートしてすることができます。唯一のWebSocket API場合は、これらを気にする必要はありません
関係HTTPプロトコル、WebSocketのプロトコルとTCPプロトコル
HTTPプロトコルは、全二重通信を達成するために、TCPプロトコル、TCPプロトコル自体の上に構築されているが、HTTPプロトコル要求 - 応答機構は、全二重通信を制限します。WebSocketの接続が確立された後、実際に、それは単に提供する:次に、我々は、HTTPプロトコルを使用して通信することができない、データが今や互いに直接送信されます。
類似したのWebSocket接続機構およびHTTPSを固定します。まず、WSSとブラウザは:あなたはWebSocketの接続を作成// xxxの場合は、HTTPS経由のWebSocket接続にアップグレード後、HTTPS接続を安全な接続を作成しますが、基本的なコミュニケーションを取ることはまだ安全なSSL / TLSプロトコルであります
シオマネキクロール用WebSocketデータ
fiddler
ダブルクリックして、WebSocket Session
データ接続を表示し、受信しました