Websocket

作者: 上山走18398 | 来源:发表于2019-07-09 07:25 被阅读0次

    简介

    Websocket 是啥?和socket有啥区别
    
    Websocket protocol是HTML5一种新的协议,它实现了浏览器与服务器全双工通信
    (full-duplex)
    全双工通信:不只是client/Browser能够发起请求,Server端也能主动发起(直到关闭)
    
    目的:即时通讯,替代轮询()
    编程思想像一种处世之道
    
    首先Websocket是基于HTTP协议的,或者说借用了HTTP的协议来完成一部分握手
    
    如何实现即时,为啥要即时
    
    WebSocket和Http协议区别和联系:
        Http协议是非持久化(也可持久化?),单向的网络协议
        
        在HTTP1.1中进行了改进,使得有一个keep-alive,也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。
        但是请记住 Request = Response , 在HTTP中永远是这样,也就是说一个request只能有一个response。而且这个response也是被动的,不能主动发起。
        
        即客户端请求我才回复,不能主动指示客户端做啥
        
        比如我需要实时更新数据并展示数据,我只能把请求间隔尽量缩短---比如每1秒轮询,感觉像是实时更新,那请求的开销大不大,每一次请求,服务端都要处理,烦不烦?
        
        从Server考虑,我有新的数据我就想发给客户端?
        
        都是基于TCP,可靠的
        
        WebSocket在建立握手时,数据是通过HTTP传输,
        但是建立之后,在真正传输时候不需要HTTP协议
        
        
    WebSocket如何实现:
        模拟Socket通信
        应用层协议(与HTTP类似)
        双向通信协议
        建立在TCP之上
        
        连接过程:
        1. 浏览器、服务器建立TCP连接 三次握手 //传输控制层,若失败后续都不进行
        
        2. TCP连接成功后,浏览器通过HTTP协议向服务器传送WebSocket支持的版本号等信息
        
        3. 服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据
        
        4. 当收到连接成功的消息后,通过TCP通道进行传输通信
        
    WebSocket与Socket的关系
    
        Socket其实不是一个协议,而是为了方便使用TCP或UDP抽象出来的一层
        是位于应用层和传输控制之间的一组接口
        
        Socket是应用层与TCP/IP协议簇通信的中间软件抽象层,一组接口
        
        通信时通过Socket连接:Socket利用TCP/IP协议建立TCP连接(封装了TCP/IP ,便于调用)
        
        Socket是传输控制层协议
        
        WebSocket是应用层协议
        
    参考连接:https://blog.csdn.net/wwd0501/article/details/54582912

    相关文章

      网友评论

          本文标题:Websocket

          本文链接:https://www.haomeiwen.com/subject/bmctkctx.html