首页 > http为何使用短连接

http为何使用短连接

rt,个人的理解是减轻服务器压力,兼容http1.0,请问主要的原因是什么


HTTP是应用层的协议,浏览器和服务器是通过TCP建立连接的,我们知道建立TCP连接需要经过三次握手,这个过程是需要花费时间的。举个例子,我们访问某个链接如www.xxx.com/index,该链接共请求10个图片资源,那么浏览器就得和服务器建立10个TCP连接,如果每次握手花费100ms,不考虑内容的传输和传播时间,光建立连接就花费了1000ms。

浏览器都有请求的并发限制,来上面的例子来说,如果浏览器的并发数是5,那么浏览器和服务器最多同时建立5个连接,剩下的请求等处于等待中,无形中又增加了响应时间。

Web服务器只有一份,而浏览器可以有多个,如果10个用户同时访问上面的链`www.xxx.com/index`,那么Web服务器就得维护100个TCP连接,无疑增加了服务器的负担。

一般来说HTTP采用的是长连接(持续性连接)


因为大部分http请求是突发性,一般是请求一个链接,然后看半天,然后再点击下一个链接,这种场景特别适合短连接


在http1.1之后,已经默认不是短链接了。如果request里的Connection设置成keep-alive,链接是不会断开的。


HTTP设计之初就确立了其无状态这一特征,而符合这一特征的其实就是所谓的短链接,只是常用的传输层协议中只有UDPTCP两个选项,UDP虽然无须握手,但其单条信息数据量有限,没有准确回馈等都不适合HTTP,所以HTTP只能选择TCP这种协议。而后面所谓的长连接只是在HTTP的框架下优化TCP链接的结果,其本身并不算是HTTP的原则,换而言之,如果存在一种UDPTCP之间的更符合HTTP的传输层协议,那HTTP也会选择那种协议,即使那种协议是即连即断的。


HTTP1.1默认支持长连接,nginx apache都有配置项

这个是的请求头,就是使用的长连接

【热门文章】
【热门文章】