Timbo Site

write something


HTTP管线化

最近在cnBeta上面看到这个东西…chrome 17 将支持 HTTP pipelining 特性

网上搜了一遍,提到这个技术的很少

###HTTP管线化是什么

HTTP Pipelining,中文已经有名字,叫“HTTP管线化”

维基百科上面定义

简单一点来说,浏览器打开一个网页,步骤如下

下载HTML - 解析 - 依次请求HTML上对应的资源(如CSS、图像等) - 显示出来

假如页面很复杂,或服务器访问慢,网页的加载就会很慢

HTTP管线化就是将多次的请求转换成一次性发出,缩短和服务器的通信时间,从而提高载入的速度

这技术好像很早就已经有了,减少从服务器获取HTML、XML、JavaScript、CSS的时间,加快加载页面的速度,显著降低用户点击和浏览器呈现新内容的时间,提高用户体验。 然而现在许多网站,引用了N多外部对象,很多页面加载时间浪费在单独的HTTP请求上,AJAX或其他方法可以稍微缓解,但加快或减少这些单独的HTTP请求应该会更好。

###于是我就开始找了

IE、Firefox、Safari很早以前就支持这个技术,但是都默认禁用,只有Opera浏览器默认开启

浏览器没有管线化技术,就意味着在发送下一个请求时,前一个请求必须响应或结束

假如服务器禁用HTTP持久连接,然后另一个请求的TCP三次握手再增加一个往返,请求越多,延迟越大

默认情况下,IE只允许与HTTP/1.1服务器上的网站保持两个连接,其他的能保持八个连接,Firefox则是四个

IE不知道如何打开,但是Firefox可以打开HTTP管线化支持

打开火狐,地址栏输入about:config,搜索pipelining

1.network.http.pipelining —— 改为True 2.network.http.pipelining.maxrequests ——改为8或其他,太多了也不好 3.network.http.pipelining.ssl —— ssl下仍生效 4.network.http.proxy.pipelining ——代理下仍生效

重启生效,了解了一些,存档,日后研究