我在基于Tyrus的客户端和我的tomcat Web服务器之间使用websocket而没有压缩。我在tomcat端看到来自我的套接字的消息,但如果我设置了一个wireshark来观看它们来到我的websocket客户端,我找不到我的消息的文本。
由于它们没有被压缩,因此必须以某种方式进行编码。谁能告诉我如何在wireshark中读取我的数据包?
答案 0 :(得分:5)
WebSocket协议定义了当客户端将数据发送到服务器时必须屏蔽帧数据。所以你应该能够在计划文本中看到来自服务器的内容,但是从客户端到服务器的帧不应该是可读的。
我不确定Wireshark目前在websocket框架检查方面提供了什么,但你可以插入一些内容。以下是websocket框架格式(取自chapter 5.2, RFC6455)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len | Extended payload length |
|I|S|S|S| (4) |A| (7) | (16/64) |
|N|V|V|V| |S| | (if payload len==126/127) |
| |1|2|3| |K| | |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
| Extended payload length continued, if payload len == 127 |
+ - - - - - - - - - - - - - - - +-------------------------------+
| |Masking-key, if MASK set to 1 |
+-------------------------------+-------------------------------+
| Masking-key (continued) | Payload Data |
+-------------------------------- - - - - - - - - - - - - - - - +
: Payload Data continued ... :
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Payload Data continued ... |
+---------------------------------------------------------------+
能够看到"明文"从客户端到服务器的数据,您需要取消屏蔽它们 - XOR Masking密钥到您的有效负载。