衡量一个网站的性能有多个指标,DNS解析时间,TCP链接时间,HTTP重定向时间,等待服务器响应时间等等,从用户角度来看,就可以归结为该网站访问速度的快慢。也就是说性能等于网站的访问速度。
早些年Amazon曾经做过一个统计:网页加载时间每延长1秒钟,一年将减少16亿美元的营收。(16亿美元是一个什么概念呢?2015年,百度全年的总营收约100亿美元!)。
鉴于性能的重要性,于是我们便经常看到许多记录提升访问速度的方法的文章:减少http请求,雪碧图,压缩文件等等,看了这些文章后,博主了解了一些比较普遍的提升性能的方法,但是还不明白为啥这样能提升速度呀!
作为一名有志青年,博主认为,不仅要知其然,还要知其所以然。在查阅大量书籍和博文后,终于明白了其中的玄机,特此记录下来,与大家分享。
接下来,我们首先来深入理解一个浏览器与互联网的通信过程,然后分析每个过程所占时间的多少,以及哪些过程的时间是可以减少的,再说明通过怎样的方法可以减少这些时间,以此来缩小网站总的加载时间,提升网站的访问速度。
从输入url到浏览器开始渲染页面中间都发生了什么
互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。分层由高到低分别为:应用层、传输层、网络层、数据链路层。发送端从应用层往下走,接收端从数据链路层网上走。如图所示:
在浏览器中输入url
用