现在位置首页 / 项目实战 /正文

http的KeepAlive是什么?需要开启吗?

作者: IT小兵 | 2014年8月15日| 热度:℃ | 评论: |参与:

我们在F12开发者工具中,监控web页面运行的时候,经常看到KeepAlive这个属性。这个到底是什么属性那?

怎么用那?什么情况下使用?

概念


HTTP的KeepAlive就是浏览器和服务端之间保持长连接,这个连接是可以复用的。当客户端发送一次请求,收到相应内容后,这个连接会保持一段时间,在该时间内的第二次就不需要再重新建立连接,就可以直接使用这次的连接来发送请求了,极大的提高了速度。



KeepAlive的应用场景


这个KeepAlive需要同时在客户端以及服务端设置才能有效。
这个时间指的是timeout时间,也就是说在这个时间段里面如果这个Connection上面没有任何活动的话,这个Connection就会被关闭,之后再有新的Request或者Response都会在一个新的Connection上面传送。

默认情况下,IIS服务端这个时间是120秒,而客户端的时间是60秒。真正的KeepAlive的时间会去这两个里面数值较小的那个。


在HTTP1.0官方协议中并没有对keepalive的明确支持,所有的HTTP请求是如下流程:
1.client 发起一个请求;
2.server收到请求后,回复一个响应;
3.连接关闭。
如果要在HTTP1.0中支持keep alive,你必须明确的在header中加入Connection:keep-alive。
1.client 发起一个包含Connection:keep-alive的请求
2.server收到请求后,如果server支持keepalive,回复一个包含Connection:keep-alive的响应,不关闭连接,否则回复一个包含Connection:close的响应,关闭连接。
3.如果client收到包含Connection:keep-alive的响应,向同一个连接发送下一个请求,直到一方主动关闭连接。

为keepalive在很多情况下能够重用连接,减少资源消耗,缩短响应时间。所以在HTTP1.1中缺省就是支持keepalive的,如果响应方
不 支持keepalive,需要明确的标识Connection:close,Connection:keep-alive就没什么意义了。


 KeepAlive的劣势


  是不是所有网站都应该开启KeepAlive了?答案肯定是不是的。KeepAlive在增加访问效率的同时,也会增加服务器的压力。

开启KeepAlive


apache配置KeepAlive

  apache通过配置KeepAlive和KeepAliveTimeout来控制KeepAlive,具体参数如下:

  KeepAlive  On/Off            (可以设置开启On或者是关闭Off)

  KeepAliveTimeout  10    (持久连接保持的时间,到时间会断开链接)

IIS配置KeepAlive

httpwebrequest所使用的API其实就是IE所使用的API(wininet),所以如果你想修改这个时间的话,需要同时修改IE的配置和IIS服务器的配置
1. IE的修改:http://support.microsoft.com/kb/813827
2. IIS的修改:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d7e13ea5-4350-497e-ba34-b25c0e9efd68.mspx
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ea116535-8eb9-4c80-8b14-b34418dbfe42.mspx
注意修改ConnectionTimeout值:http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/73566f83-c257-4941-8ed8-7ae45b2e7985.mspx?mfr=true


  总结

  (1)如果内存和CPU都足够,开启和关闭KeepAlive对性能影响不大。

  (2)如果考虑服务器压力,如果是静态页面,大量的调用js或者图片的话,建议开启KeepAlive;如果是动态网页,建议关闭KeepAlive。


点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:suchso@vip.qq.com

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

抢天猫双11红包
推荐使用阿里云服务器
echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:suchso@vip.qq.com

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询