2.4持久连接节省通信量

来源:互联网 发布:淘宝知识产权申诉包过 编辑:程序博客网 时间:2024/05/21 09:34

一.背景:

在HTTP协议的初始版本中,每进行一次HTTP通信就要建立和断开一次TCP连接。(如果对TCP连接不熟悉可以参考1.2和1.4节)如图:


对该图解释一下,客户端与服务器端要进行通信,TCP协议为了保证通信的准确性,会进行“三次握手”来保证信息传递的准确性(详见1.2节),确认完之后才会进行HTTP请求和响应的传输,传输完之后服务器端发出终止信号FIN,断开TCP连接。

.................................................................背景/问题分割线

二.问题的产生:

因为当年都是些很小的文本传输,所以这样也没有多大问题,但是,随着HTTP的普及,文档中包含大量图片的情况多了起来,问题也就产生了:

比如,当我们使用浏览器浏览一个包含多张图片的HTML页面时,就会出下以下问题,

获取文档

获取图片

      ...

获取图片

因此,每次的请求都会造成无谓的TCP的连接与断开,增加通信量的开销。

......................................................问题/解决办法分割线

三.解决办法

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


持久连接的好处:

(1)减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。

(2)减少开销的那部分时间,使HTTP请求和响应能够更早的结束,因此Web页面显示速度也就相应提高了。

2.管线化

持久连接使得多数请求以管线化方式发送称为可能。从前发送请求后需等待并受到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。

如图:


比如当请求一个包含10张图片的HTML Web页面,与挨个连接相比,用持久连接可以让请求更快,而管线化技术则比持久连接还要快。请求越多,时间差就越明显!


0 0