如何建设高性能网站

文字说明:我不小心在公司的图书馆看了这本书,觉得内容写得很好,非常详尽和井井有条。尽管我不是前端工程师,但我仍然需要了解这一点,以便将来在设计体系结构和优化系统时可以考虑这些因素。我将检查这本书中的紧急情况。我也希望更多的同事可以更多地了解这本书,以提高他们所负责的网站的显示速度,并为用户提供更好的访问体验。
 
      最终用户响应时间中只有10-20%用于下载HTML文档。剩余80-90%的时间都花在下载页面的所有组件上。
HTTP演示
压缩
有条件的GET请求
到期
活着
规则1,减少HTTP请求
图片地图:将多张图片合并为一张图片,然后使用CSS定位显示不同的位置
CSS精灵:如上所述
在线图片
结合脚本和样式表
规则2.使用内容交付网络(CDN)
规则3:添加Expires标头
标头到期:在此日期/时间之后,响应将被视为无效
Max-Age:定义相对有效时间Cache-Control:max-age = 100
空缓存VS全缓存:将页面内容尽可能地放在大缓存中
不仅仅是图像:图像应该使用缓存,但是这种最佳做法不应仅限于图像
修改后的文件名:为了获取最新文件,最有效的解决方案是更改其所有链接,以便新请求从源服务器下载最新内容。
规则4.压缩组件
gzip:接受编码:gzip,放气。 gzip是当前最流行,最有效的压缩方法,也是最理想的压缩方法
压缩的内容:值得压缩脚本和样式表,以及包括XML和JSON的文本。图片和PDF不应被压缩,因为它们已经被压缩了。
经济率:压缩通常可以减少多达70%的响应数据量
Gzip配置:不同的Web服务器具有不同的gzip配置方法,但大多数都支持gzip
代理缓存:Web服务器基于Accept-Encoding检测是否压缩响应。无论是否压缩,浏览器都会基于响应中的其他HTTP标头(例如Expires和Cache-Control)来缓存响应。由于压缩决策基于Accept-Encoding请求标头,因此有必要在服务器的Vary响应标头中包含Accept-Encoding。
边缘情况:服务器和客户端之间的压缩等效性看似简单,但必须正确。无论是客户端错误还是服务器错误(将压缩内容发送到不支持该内容的客户端,忘记将压缩内容声明为以gzip格式编码等),该页面都会被破坏。错误通常不会发生,但是这些极端情况应予以考虑。尽管可以通过将浏览器列入白名单来解决这种情况,但是用于设置浏览器白名单的说明过于复杂,无法使用HTTP标头进行编码。最佳实践是将另一个用户代理条件作为代理添加到Vary标头中。不同:接受编码,用户代理
规则5.将样式表放在顶部
      规则5对加载页面的实际时间没有太大影响,它更多地影响了浏览器对这些组件顺序的响应。为了避免在样式更改时重新绘制页面元素,浏览器在渲染之前会等待样式表加载到底部。此时,浏览器将延迟视觉组件。实际上,用户感觉迟钝的页面是使用可视组件加载更快的页面。使用LINK标记将样式表放置在文档的HEAD中可以解决此问题。
 
     使用样式表时,将阻止页面的渐进式渲染,直到所有样式表均已下载。将样式表移动到文档标题,以便可以先下载样式表,而不会阻止页面的呈现。
 
规则6,将脚本放在底部
通过页面上的组件数,并行下载对响应时间的影响最大。如果网页将其组件均等地放在两个主机名下,则te