WebSocketのプロトコルとパケットキャプチャ

WebSocketのプロトコル

WebSocketは新しい契約ではなく、接続を確立するためにHTTPプロトコルを使用するように、それはブラウザとサーバ間の無制限の双方向通信チャネルを確立することを目指して、例えば、いつでもサーバーにメッセージを送信することができますブラウザ


要求は、標準のHTTPプロトコル要求、次の形式であるため、WebSocketの接続は、ブラウザによって開始する必要があります。

WSをGET:// localhostを:3000 / WS / HTTP / 1.1チャット
ホスト:localhostの
アップグレード:のWebSocket 
接続を:アップグレード
起源:のhttp:// localhostを:3000 
秒-のWebSocket-キー:クライアント、ランダム文字列 -WebSocket-バージョン:13

リクエストと通常のHTTPいくつかの違いがあります。

  1. GETリクエストアドレスは/パス/に類似していないが、WSで://アドレスの先頭に。
  2. 要求ヘッダーのアップグレード:のWebSocketと接続:アップグレードは、接続のWebSocket接続に変換されることを示します。
  3. SEC-のWebSocketキーは、接続を識別するために使用され、データを暗号化するために使用されていません。
  4. 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データ接続を表示し、受信しました

 

おすすめ

転載: www.cnblogs.com/SitVen/p/11665064.html