WiresharkでWebSocket通信をパケットキャプチャしてみた(WebSocketの切断)
前々回、前回で、接続時、テキストデータの送受信時のパケットを見たので、今回は切断時のパケットを見てみることにする。
ブラウザ側のJavaScriptでclose()メソッドを呼び出したときのデータが以下。
(パケットをキャプチャしたときのブラウザはGoogle Chrome 24.0.1312.52)
なお、TCPヘッダなどを取り除き、WebSocketの部分だけを抽出して16進で表示している。
88 80 50 1a 6d dc
Wiresharkで見るとこうなる。
Opcodeが接続の切断を示す "1000" になっている。そしてPayloadにデータは何もないが、クライアントからサーバに送っているのでMasking-Keyが設定されている。
(OpecodeやMasking-Keyの意味は前回の記事を参照)
そして、これに対するサーバの返信。
88 00
Wiresharkで表示したところ。
こちらもOpcodeが "1000" になっている。ただし、サーバからの送信なのでMasking-Keyはない。Masking-KeyもPayloadもないため、2バイトとものすごく短い。
ところで、これはWebSocketと全く関係ないが、WiresharkでWebScoketの切断のパケットを表示させるとこんなことも表示された。
クライアント→サーバの場合
サーバ→クライアントの場合
Malformedと言われてしまっているが、Wiresharkが期待しているパケットと違っているのかな?それともWiresharkのバグ?
よくわからないが、WebSocketの通信自体は正常にできているようなので、気にしなくていい、、、のかな??