websocket
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它可以实现服务器可以主动传送数据给客户端
''' 分为两大部分 1: 握手环节:主要验证服务端是否支持websocket (浏览器绝大多数都支持websocket) 首先浏览器连接到服务器 浏览器产生一个随机字符串 给服务器发送一份(放在请求头里) 服务器和浏览器接下来都做此操作 随机字符串 + magic string(全球统一的) 拼接 然后将拼接好的结果进行加密处理(sha1/base64)成密文 服务器将密文返回拼给浏览器 浏览器进行比对 如果一致说明服务器支持websocket协议 如果不一致则报错 如果对比一致 建立websocket链接 基于该链接接收消息 2: 收发数据 密文传输 ===>涉及到解密(全球统一)的过程 网络传输的数据都是二进制 对应到Python中就是bytes 数据解密过程 1:先读取数据的第二个字节的后七位(payload) 2:根据7位数据的长度来指定不同的解密流程 = 127: 再往后读取8个字节 = 126: 再往后读取2个字节 <=125: 再在往后读取 3: 除去前面读取数据之外 再往后读取4个字节(masking-key) ==(剩下的就是真实的数据) 拿着它去解析后面的真实数据(依据一个算公式) '''