HTTP优化和加速特性带来的优势


发布时间:2012-08-23

随着网站的并发连接数不断增加,服务器会逐渐耗尽网络资源,而这并不一定是因为服务器的硬件配置不够奢华,也并不一定意味着服务器应该增加带宽。性能上的瓶颈是在于服务器耗费了更多的资源来处理网站用户的大量短连接。为此,我们通过连接复用技术加快了后台服务器的TCP连接处理速度,从而消除了服务器面对多用户连接时的性能瓶颈,相对以往的处理方式达到了事半功倍的效果。

一般我们访问网站的时候,在未与服务器建立连接访问资源、发送 HTTP请求之前,先与服务器进行TCP三次握手,这就是我们经常说的三次握手协议,建立TCP连接,然后再发送HTTP请求。服务器收到HTTP请求后进行处理,并将处理的结果发送回给我们,然后我们就和服务器互相发送FIN并在收到FIN的ACK确认后关闭连接。在这种方式下,一个简单的HTTP请求需要十几个TCP数据包才能处理完成。

在HTTP 1.0的时候,客户端的每一个HTTP请求都必须通过独立的TCP连接进行处理,但是在HTTP/1.1时代有一个特点:允许在同一个TCP连接上有多个HTTP请求。我们的连接复用技术正是利用了这个特点,取代了传统中通过每一个HTTP连接的从客户端到服务器的1对1模式。应用了连接复用技术,如果有客户端的请求则查找是否有可复用连接,如没有则建立,并保持住,以供之后复用;如果有,则从已建立的该服务器的连接池中选择一个连接,并在此连接上发送客户端的请求。在每个连接中最多可以同时处理90个请求。

于是就有了连接复用技术。连接复用另一个重要的好处是:它可以消除服务器上因频繁启用新连接而造成的负荷——对于一个进程来说,其代码路径往往不如一个满足信息头预测要求的数据包更加优化。再者,在没有启动新的连接的情况下,服务器不太可能把他们的临时端口改成TIME_WAIT状态。