如何让自己的网站打开速度飞一般的快
在生活中很多人把百度首页当成了测试网络联通性网站,只要百度首页能打开,就证明网络是好的。那么百度是如何做到让自己的网站全国各地速度稳定,飞一般的感觉呢?我们又如何设计才能让自己的网站打开速度超快,用户体验更好呢?
影响网站加载速度的要点
一个网站的加载时间主要分为如下部分:DNS查询时间、TCP握手时间、SSL握手时间、页面内容加载时间、浏览器渲染时间。
DNS
DNS查询时间主要依赖用户配置的DNS服务器解析域名的时间,一般用户基本使用运营商提供的默认DNS,DNS查询时间如果是运营商默认,基本在10ms以内,如果使用第三方公共DNS,国内一般100ms以内,国外可能300ms以内。为了减少DNS查询时间,整个网页应尽量避免使用过多的域名,假如你一个页面上的内容来自10个不同的域,那么浏览器将会有10次DNS查询,所以减少内容所在域,将减少DNS查询时间,特别是网站上引用的第三方图片,字体等资源,最好能下载后,统一保存在自己的静态文件服务器上使用。
握手
握手时间这个依赖用户到网站服务器之间的网络质量,使用BGP机房线路,将会减少用户跨运营商访问带来的网络高延时问题,这几年跨运营商网络访问的问题已经大大的改善,相比之前电信访问电信机房的网站几十毫秒的响应,访问联通则几百毫秒的响应已经有很大的提升和改观。但是依旧建议使用BGP机房线路,或者分别在电信,联通,教育网,移动部署服务。
内容
内容加载时间主要依赖用户到内容服务器之前的线路质量,包括稳定性和速度,用户更好的宽带,服务器更高的宽带都将提升内容加载速度。做为网站开发者,我们可以选择以下方案。
压缩网站上的内容,比如对css,js等文本资源开启gzip压缩(建议仅对大于1KB的文件启用),有时间压缩率能到70%以上,也就是原来10MB的内容,压缩后只有3MB,这将节省大量的网络开销,提升内容加载速度。
使用CDN缓存,用户从最近的节点加载内容,也会提升加载速度,保证清晰度的情况下,压缩图片,过多的图片加载,将会占用大量的时间。
减少网络请求次数,主要是合并图片,css, js文件,减少请求次数会提升加载速度。
开启http1.1和keepalive, 连接复用,减少网络握手开销。使用HTTP2.0,复用通道,并行请求,减少顺序请求带来的时间差。
改造页面结构,将css文件放在头部,js文件放在页面尾部,可以让浏览器先渲染出页面,再异步处理JS逻辑。
渲染
合理的css结构,页面结构将会显著减少浏览器渲染时间。