美文网首页程序员
WebSocket 是什么原理?为什么可以实现持久连接?(笔记)

WebSocket 是什么原理?为什么可以实现持久连接?(笔记)

作者: WhyNotYue | 来源:发表于2017-06-09 15:52 被阅读0次

    HTTP协议

    1. 非持久协议
    • HTTP的生命周期通过Request来界定,也就是一个Request 一个Response,那么在HTTP1.0中,这次HTTP请求就结束了。
    • 在HTTP1.1中,有一个keep-alive,即,在一个HTTP连接中,可以发送多个Request,接收多个Response
    • 总的来说,在HTTP中永远是一个request只能有一个response。
    2. 被动性
    • response是被动的,不能主动发起。即,服务端无法主动推送信息给客户端。
    3. 无状态性
    • 通俗的说就是,服务器因为每天要接待太多客户了,是个健忘鬼,你一挂电话,他就把你的东西全忘光了,把你的东西全丢掉了。你第二次还得再告诉服务器一遍。

    WebSocket

    1. 与HTTP的关系
    • WebSocket与HTTP都是协议,关系如下:
    WebSocket与HTTP的关系
    2. 实现实时信息传递的方式
    • ajax轮询
    • long poll
    • WebSocket
    3. ajax轮询
    • 原理:让浏览器每隔几秒发送一次请求,询问服务器是否有新信息。
    • 缺点:需要服务器有很快的处理速度和资源。(速度)
    4. long poll,又叫长连接或长轮询
    • 原理:采取阻塞模型(一直打电话,没收到就不挂电话),即,客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。
    • 缺点:需要有很高的并发,也就是说同时接待客户的能力。(场地大小)
    5. WebSocket
    • 解决了HTTP的被动性,当服务器完成协议升级后(HTTP->Websocket),服务端就可以主动推送信息给客户端。
    • 做到了只需要经过一次HTTP请求,就可以做到源源不断的信息传送了。

    相关文章

      网友评论

        本文标题:WebSocket 是什么原理?为什么可以实现持久连接?(笔记)

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