美文网首页
HTTP长连接和短连接 + Websocket

HTTP长连接和短连接 + Websocket

作者: 壮语 | 来源:发表于2018-08-23 17:19 被阅读0次

    三次捂手的无状态http协议,是web应用的基础,以此来建立client和server的交互,但是在这种协议下造成了1 request = 1 response,no resquest、no response的情况,也就是服务器只能被动的回应服务器端的请求,不能主动发送消息给客户端,所以在一些即使应用上,hettp协议略显乏力,但是也可以通过轮询和长连接两种方式来完成即时通讯。

    ajax轮询

    就是客户端不断发ajax清酒给后端,询问服务器是否有新消息传递给客户端。

    但是很明显这种方式造成资源浪费巨大

    长连接

    长连接其实是一种对轮询的改进,引入了阻塞这一概念。

    也就是客户端发一次请求,服务端在没得到新消息之前阻塞该请求,知道有新消息为止。

    这样虽然减少不少不必要的请求,但实质和轮询一样,而且会产生服务器阻塞所带来的消耗(高并发)

    websocket

    websocket是h5新提出的协议,在websocket下,客户端需要向服务器发送一次请求,该请求用建立服务端与客户端之间的连接,让服务器转换websocket协议处理请求,以回调的方式将服务器端的消息发送至客户端,从根本上解决http协议的被动性。

    长连接和短连接的操作过程

    短链接的步骤是:

    建立连接----数据传输----关闭连接......建立连接----数据传输----关闭连接

    长连接的步骤是:

    简历连接----数据传输.....(保持链接)----数据传输----关闭连接

    长连接和短连接的优缺点

    长连接可以省去多次TCP简历和关闭的操作,减少浪费,节约时间,但是如果链接数较多会对服务器造成较大的压力

    短链接对于服务器来说管理较为简单,存在连接都是有用的连接。但如果请求屏饭,将在TCP的建立和关闭操作上浪费时间和宽带。

    什么时候用长连接,短连接

    长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况下。例如:数据库的连接。

    而像WEB网站的http服务一般都用短连接,因为长连接对于服务端来说会耗费一定资源,而像WEB网站这么频繁的成千上万的访问量用短连接会更省些资源,如果用长连接会造成服务器很大压力。

    websocket的优点

    websocket解决了http的几个难题:

    首先被动型:服务器可以主动推送消息给客户端

    服务器上消耗资源的问题:其实我们所用的程序是要经过两层代理的,即HTTP协议在Nginx等服务器的解析下,然后再传送给相应的Handler(php等)来处理。简单地说,我们有一个非常快速的 接线员(Nginx) ,他负责把问题转交给相应的 客服(Handler) 。Websocket就解决了这样一个难题,建立后,可以直接跟接线员建立持久连接,有信息的时候客服想办法通知接线员,然后接线员在统一转交给客户。

    整个过程只建立一次http握手,所以说整个通讯过程是建立在一次连接/状态中,也就避免了HTTP的非状态性,服务端会一直知道你的信息,直到你关闭请求,这样就解决了接线员要反复解析HTTP协议,还要查看identity info的信息。

    缺点是:不兼容低版本的IE

    原文地址:https://blog.csdn.net/duola8789/article/details/73623059/

    原文地址:https://blog.csdn.net/zq736122079/article/details/76850038

    原文地址:https://blog.csdn.net/The_c_D/article/details/52494777

    相关文章

      网友评论

          本文标题:HTTP长连接和短连接 + Websocket

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