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) ==(剩下的就是真实的数据)
           拿着它去解析后面的真实数据(依据一个算公式)
'''

 

原文地址:https://www.cnblogs.com/wakee/p/10957555.html