长短连接/长短轮询

短轮询

定义:就是普通的轮询,指在特定的时间间隔,由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。短轮询是服务器立即发送响应,无论数据是否有效。

应用场景:传统的web通信,后台处理数据需要一定的时间,前端想要知道后端的处理结果,就要不定时向后端发出请求以获得最新情况。

缺点:请求中有一大半是无用,浪费带宽和服务器资源。而且实时性不高。适合用在对实时性要求不高的地方。

长轮询

定义:服务器收到请求之后如果有数据,就立刻响应请求,如果没有数据就将请求挂起一段时间,在这个时间里如果有数据就立即响应请求并关闭连接,没有数据就等到连接超时为止。客户端处理完响应信息后再向服务器发送新的请求。

优点:客户端请求次数将大大减小,节省了网络流量。

缺点:服务器挂起请求会消耗资源,

应用场景:长轮询一般用在实时性要求高的场景,因为http长轮询的控制权一直是在服务器端,而数据是在服务器端的,因此实时性高。

长连接和短连接

HTTP分为长连接和短连接,其本质上是TCP连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才有真正的长连接和短连接一说,HTTP协议是应用层的协议,而TCP协议才是真正的传输层协议,只有负责传输的这一层才需要建立连接。

短连接

HTTP1.0规定浏览器与服务器只能保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接。

缺点:使用浏览器浏览一个包含多张图片的HTML页面时,在发送请求访问HTML页面资源的同时,也会请求该HTML页面里面包含的其他资源,因此,每一次请求都会造成无谓的TCP连接建立和断开,增加通信开销。

长连接

为了解决上述TCP连接的问题,HTTP/1.1提出了持久连接的方法,持久连接的特点是只要任意一端没有明确提出断开连接,则保持TCP连接状态。

在HTTP/1.1中,所有的连接都默认是持节连接,可以通过Connection:keep-alive

优点:减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器的负担。


  转载请注明: TomoFur 长短连接/长短轮询

 上一篇
盒子居中方法 盒子居中方法
盒子没有固定的宽和高利用transform在需要居中对齐的块中首先采用绝对定位,其父盒子采用相对定位。然后transform:translate(-50%,-50%);left:50%;top:50% 采用flex布局父盒子采用flex布局
2019-06-06
下一篇 
TCP协议 TCP协议
TCP报文的若干首部关键字段确认ACK:仅当ACK=1时确认号字段才有效,当ACK=0时,确认号无效。TCP规定,在连接建立之后所有传送的报文字段都必须要把ACK置为1 同步SYN:在连接建立时用来同步序号,当SYN=1而ACK=0时,表明
2019-06-05
  目录