websocket协议实现
Posted 木林森__
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了websocket协议实现相关的知识,希望对你有一定的参考价值。
# websocket协议实现
1.抓包
wireshark规则: tcp.port == 9000
2. 结果解析
客户端请求:
GET /ws/test_2 HTTP/1.1 Host: localhost:9000 Connection: Upgrade Upgrade: websocket Origin: http://192.168***:9000 Sec-WebSocket-Version: 13 Sec-WebSocket-Key: t55Td8j76+BHL9vRhPFXCQ== Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
服务器响应:
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: 4rAk+P4vM9mrrpKOiDCDSYQpXPA=
释义:
- Connection:Connection必须设置为Upgrade,表示客户端希望连接升级
- Upgrade:Upgrade必须设置为WebSocket,表示在取得服务器响应之后,使用HTTP升级将HTTP协议转换(升级)为WebSocket协议。
- Sec-WebSocket-key:随机字符串,用于验证协议是否为WebSocket协议而非HTTP协议
- Sec-WebSocket-Version:表示使用WebSocket的哪一个版本。
- Sec-WebSocket-Accept:根据Sec-WebSocket-Accept和特殊字符串计算。验证协议是否为WebSocket协议。
- Sec-WebSocket-Location:与Host字段对应,表示请求WebSocket协议的地址。
- HTTP/1.1 101 Switching Protocols:101状态码表示升级协议,在返回101状态码后,HTTP协议完成工作,转换为WebSocket协议。此时就可以进行全双工双向通信了。
以上是关于websocket协议实现的主要内容,如果未能解决你的问题,请参考以下文章