> 原本是为了解决我的博客 ( Litespeed服务器 ) 的Header总是Connection:close的问题 , 发现这篇文章 , 遂整理并翻译 . 版权问题正在联系作者 . [原文链接](http://www.feedthebot.com/pagespeed/keep-alive.html) 当浏览器想显示一个网页 , 它必须先拿到html文件 , 然后读取它 , 下载上面引用的css , js , 图片等文件 . 如果浏览器和服务器要一个一个地传送文件 , 耗时会比一次性传完多得多 . keep-alive使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。 有的人错误地认为自己不必担心这个 , 因为HTTP/1.1标准早已默认开启Keep-alive . 但是捏 , 有一些丧心病狂的主机商给你禁了这个功能 , 因为对于访问量大的网站 , 在处理暂停期间,本来可以释放的资源仍旧被占用 , 不利于性能发挥。 **这主机还能用 ? 换换换 !** 那么我们就需要手动开启了 . 你需要在Header里加一个声明Connection:keep-alive的语句 , 这样一切就会按我们想象的那样发生 . ### 通过.htaccess 如果你没有访问Apache配置文件的权限 , 你可以在.htaccess里定义Header :

Header set Connection keep-alive

注意 : 如果你的主机商连.htaccess的写权限都不给你的话 , 还是赶紧换吧 . ### 通过httpd.conf 如果你有编辑Apache配置文件的权限 , 你可以在这里打开Keep-alive :

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to “Off” to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 100

### 在nginx中 在nginx中可以用HttpCoreModule来设置 , 把 “keepalive_disable” 换成enable就行 . ### 在Litespeed中 Litespeed采用一种名为 “Smart keep-alive” 的技术 , 以Connection:close的方式传输html , 然后用Connection:keep-alive的方式传输其他所有文件 , 而Smart keep-alive在Header探测工具中是显示为close的 , 容易被误以为是关闭了keep-alive . 由于Litespeed主打大型网站服务器 , 这样可以保证访问量暴增时的稳定性 .