IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

HTTP KeepAlive,开启还是关闭

火丁笔记 2013-03-03 22:50:10 累计浏览 6,702 次
本机暂存

   所谓「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,开启还是关闭,大家不妨结合自己的客观情况重新思考一下。

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 浅析http协议、cookies和session机制、浏览器缓存 (累计阅读 17,446)
  2. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  3. libcurl的使用总结(二) (累计阅读 15,083)
  4. 使用python爬虫抓站的一些技巧总结:进阶篇 (累计阅读 13,301)
  5. HTTP协议Keep-Alive模式详解 (累计阅读 12,104)
  6. 你必须了解的Session的本质 (累计阅读 11,441)
  7. curl 命令使用cookie (累计阅读 10,016)
  8. Hello! 404 (累计阅读 9,384)
  9. 解决 nginx 反向代理网页首尾出现神秘字符的问题 (累计阅读 9,096)
  10. POST与GET的区别及RESTful (累计阅读 7,862)