zoukankan      html  css  js  c++  java
  • 前端性能优化-keep-alive

    什么是Keep-Alive

    Keep-Alive是浏览器端和服务器端约定的一种提高传输效率的协议。我先举个例子吧,我现在搬家,有10个箱子,如果我自己来搬的话,每次只能带一个箱子,那么搬到目的地,需要跑十次,而如果我要找一家搬家公司的货车来,一次就可以把10个箱子搬到目的地。在这个例子中,使用货车搬家,就相当于使用了Keep-Alive,很显然效率可以提高很多。大家都知道,建立一次Http链接需要三次握手四次断开,开消非常的大。如果需要传输10个JS文件,则需要30次握手和40次断开,其中非常长的时间都耗在连接断开上,这显然是我们不希望看到的,所以就有了Keep-Alive这种方式,我们还是传输10个文件,现在只需要建立一次Http链接,当10个文件传输完成后(如果没有超出超时时间),服务器会自动断开连接。

    现代浏览器默认会在request中加上Connection:keep-alive,表示当前浏览器支持keep-alive这种传输方式,同时如果在Response有Connection:keep-alive,表明服务器端在传输数据的时候,使用的Keep-Alive方式。下图能直观的反应出正常的HTTP连接和Keep-Alive方式的连接。

    image

    没开启Keep-Alive时的返回头信息:Connection:close

    image

    开启Keep-Alive时的返回头信息:Connection:Keep-Alive

    image

    Apache如何开启Keep-Alive模式

    以Apache2.4的windows版为例,在httpd.conf中增加如下代码

    # 配置KeepAlive
    KeepAlive On #开关
    MaxKeepAliveRequests 100 #最大请求数
    KeepAliveTimeout 5 #超时时间

    如果关闭,则把On改成Off即可

  • 相关阅读:
    08-jQuery的位置信息
    06-jQuery的文档操作(重点)
    05-使用jQuery操作input的value值
    17-案例
    04-jQuery的属性操作
    03-jQuery动画效果
    02-jQuery的选择器
    01-jQuery的介绍
    16-client、offset、scroll系列
    15-BOM
  • 原文地址:https://www.cnblogs.com/sunhk/p/5182054.html
Copyright © 2011-2022 走看看