http请求时间分析 —— chrome

原创 minsong 随笔 浏览器 137阅读 2018-12-28 15:57:18 举报

Chrome浏览器开发者工具Network窗口下,可以查看到各个资源请求的各个时间段的一个具体值,如下图所示:


1.Queueing(队列)

浏览器有线程限制的,发请求也不能所有的请求同时发送,从添加到待处理队列到实际开始处理的时间间隔

2.Stalled(阻塞)

浏览器得到要发出这个请求的指令到请求可以发出的等待时间
浏览器对同一个主机域名的并发连接数有限制,因此如果当前的连接数已经超过上限,那么其余请求就会被阻塞,等待新的可用连接;此外脚本也会阻塞其他组件的下载;

优化方案

1、将资源合理分布到多台主机上,可以提高并发数,但是增加并行下载数量也会增大开销,这取决于带宽和CPU速度,过多的并行下载会降低性能;
  2、脚本置于页面底部;

3.DNS Lookup(域名解析)

请求某域名下的资源,浏览器需要先通过DNS解析器得到该域名服务器的IP地址。在DNS查找完成之前,浏览器不能从主机名那里下载到任何东西。

优化方案

1、利用DNS缓存(设置TTL时间);
  2、利用Connection:keep-alive特性建立持久连接,可以在当前连接上进行多个请求,无需再进行域名解析;

4.Initial connection(初始化连接)

TCP建立连接的三次握手时间

5.Request sent(发送请求)

发送HTTP请求的时间(从第一个字节到最后一个字节)

优化方案:

1、减少HTTP请求,可以使用CSS Sprites、内联图片、合并脚本和样式表等;
  2、对不常变化的组件添加长久的Expires头(相当于设置久远的过期时间),在后续的页面浏览中可以避免不必要的HTTP请求;

6.Waiting(等待响应)

通常是耗费时间最长的。从发送请求到收到响应之间的空隙,会受到网络、服务器距离等因素的影响。

优化方案:

1、使用CDN,将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求,提高响应速度;

7.Content Download(下载)

下载HTTP响应的时间(包含头部和响应体)

优化方案:

1、通过条件Get请求,对比If-Modified-Since和Last-Modified时间,确定是否使用缓存中的组件,服务器会返回“304 Not Modified”状态码,减小响应的大小;
  2、移除重复脚本,精简和压缩代码,如借助自动化构建工具webpack、grunt、gulp等;
  3、压缩响应内容,服务器端启用gzip压缩,可以减少下载时间;

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复