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

     

  • 相关阅读:
    ios---图片缩放
    ios---清除缓存
    ReactNative---组件种类
    Linux 用户和用户组管理
    Linux 文件与目录管理
    linux文件的基本属性
    xshell 快速复制打开之前用过的ssh
    ll 和 ls -l的详解
    laravel rbac的用户 角色 权限的crud
    laravel 中的rbac自己简单的实现
  • 原文地址:https://www.cnblogs.com/wakee/p/10957555.html
Copyright © 2011-2022 走看看