HTTP KeepAlive,开启还是关闭
所谓「HTTP Keep-Alive」,在维基百科里称为「HTTP Persistent Connection」,说白了就是复用HTTP连接,如此一来理论上客户端的用户体验会更流畅,但是与之相对服务端不得不维持大量的连接。开启还是关闭,这是个问题。
一个经常用来讲解HTTPKeepAlive的例子一般是这样描述的:当我们访问一个包含了若干个图片的网页时,如果HTTPKeepAlive是关闭的,那么页面中每一个图片都会发起是一次连接请求;但是如果HTTPKeepAlive是开启的,那么因为可以复用HTTP连接,所以可以节省很多不必要的开销。
听起来不错!不过现在可不是用猫上网的年代了,当今高带宽低延迟的网络让建立HTTP连接不再是什么难事儿,此时访问一个包含了若干个图片的网页时,与其打开一个连接然后串行的请求图片,不如打开多个连接然后并行的请求图片,事实上现代浏览器也都是这么干的,最佳实战甚至倡导通过多域名进一步提升并发数。
此外,再让我们看看某台开启了KeepAlive的Nginx服务器的Status结果:
shell> curl -s http://127.0.0.1/status Active connections: 95896 server accepts handled requests 66542336512 66542336512 67713042963 Reading: 1945 Writing: 82 Waiting: 93869
其中,各项结果的含义如下:
Active connections: number of all open connections
Server accepts handled requests: nginx accepted 66542336512 connections, handled 66542336512 connections (no one was closed just it was accepted), and handles 67713042963 requests
Reading: nginx reads request header
Writing: nginx reads request body, processes request, or writes response to a client
Waiting: keep-alive connections, actually it is active - (reading + writing)
实际复用HTTP连接的效果如何呢:
67713042963 / 66542336512 = 1.01 requests per connection
额滴神啊,基本等同于没用!为什么会这样?因为这是一台WebService服务器,客户端只是偶尔访问一次,此时的KeepAlive连鸡肋都不如,为了服务器的性能,关闭它吧!
…
HTTPKeepAlive,开启还是关闭,大家不妨结合自己的客观情况重新思考一下。
建议继续学习:
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:老王 来源: 火丁笔记
- 标签: KeepAlive
- 发布时间:2013-03-03 22:50:10
-
[65] find命令的一点注意事项
-
[46] memory prefetch浅析
-
[44] 读书笔记-壹百度:百度十年千倍的29条法则
-
[33] 卡诺模型―设计品质与设计价值的思考
-
[31] 小屏幕移动设备网页设计注意事项
-
[28] Oracle bbed工具的编译
-
[25] 基本排序算法的PHP实现
-
[23] 8大实用又重要Mac使用技巧
-
[22] 杨建:网站加速--Cache为王篇
-
[21] 程序员技术练级攻略