HTTP Keep-Alive

  HTTP是一个 请求<->响应模式的典型范例,即客户端向服务器发送一个请求信息,服务器来响应这个信息。在老的HTTP版本中,每一个请求都将被建立一个新的 客户端->服务器的链接,在这个链接上发送请求,而后接收请求。这样的模式有一个很大的优势就是,它很简单,很容易理解和编程实现;它也有一个很大的缺点就是,它效率很低,所以Keep-Alive被提出用来解决效率低的问题。
Keep-Alive功能使客户端到服务器端的链接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了创建或者从新创建链接。市场上 的大部分Web服务器,包括iPlanet、IIS和Apache,都支持HTTP Keep-Alive。对于提供静态内容的网站来讲,这个功能一般颇有用。可是,对于负担较重的网站来讲,这里存在另一个问题:虽然为客户保留打开的连 接有必定的好处,但它一样影响了性能,由于在处理暂停期间,原本能够释放的资源仍旧被占用。当Web服务器和应用服务器在同一台机器上运行时,Keep- Alive功能对资源利用的影响尤为突出。 此功能为HTTP 1.1预设的功能,HTTP 1.0加上Keep-Aliveheader也能够提供HTTP的持续做用功能。
Keep-Alive: timeout=5, max=100
timeout:过时时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),max是最多一百次请求,强制断掉链接
就是在timeout时间内又有新的链接过来,同时max会自动减1,直到为0,强制断掉。
 
  咱们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每一个请求/应答客户和服务器都要新建一个链接,完成以后当即断开链接(HTTP协议为无链接的协议);当使用Keep-Alive模式(又称持久链接、链接重用)时,Keep-Alive功能使客户端到服务器端的链接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了创建或者从新创建链接。
http 1.0中默认是关闭的,须要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,若是加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的链接请求了,因此是否能完成一个完整的Keep-Alive链接就看服务器设置状况。
相关文章
相关标签/搜索