http连接过程遇到的各种性能瓶颈

昨天写了http中的流程,今天针对这个流程,归纳几个可能遇到的性能瓶颈

  1. DNS查询

     域名解析虽然只要一次,本地就会缓存,但是有时候后端的服务可能绑定在二级域名下,这样解析复杂度就上去了,而一些大厂关联的域名可能更多,每一个域名解析都会增加响应时间,更为耗时的是之后还要tcp三次握手,

     对应的昨天流程图中的:

     

  2.建立连接

   这里就是我觉得最为耗时的tcp三次握手了,如果是TLS连接还要加上TLS的网络耗时,除此之外,TLS协议本身还要浏览器和服务器解析,这也是耗时操作,这一部分对应:

   

 

  3.TTFB

    time to first bytes 首字节时间,这个就要服务器响应速度了,以及主页面的资源排布了,对应的地方是

    

 

    注意这个部分算的是往返操作,就是说不单单是客户端的发出,还要算上服务端的响应

  4 TTLB

    请求资源最后到达的的时间

  5 开始渲染时间

    这里开始就是浏览器的部分,浏览器屏幕上开始响应内容的时间,就是用户等待页面的时间,这是这一部分的

    

 

  6.文档加载完成时间

    这一部分就是所有页面资源加载的时间,对应的是

    

  最后,大体上每个链接步骤都是耗时操作,在这篇博文中虽然我把他们分开讲,是为了让我自己分清楚,实际上里面有些概念是子集和父集的概念,例如TTFB时间实际上包含了前面DNS解析和TCP三次握手的时间,和别人装逼的时候一定要注意

  还有一点,上面的每一个资源的增加都会造成性能的下降,例如引用的js文件如果增加,页面加载完成时间也会增加

posted @ 2018-08-24 11:27  qunincey  阅读(552)  评论(0编辑  收藏  举报