一直忙于工作,最近终于可以静下心来阅读一些与工作相关的书籍。本文是对《高性能网站建设指南》一书的总结。希望在自己有所收获的同时,也能给对这块知识感兴趣的童鞋们进行入门指导。梳理《高性能网站建设指南》分为两部分,本文为第一部分。第二部分参见提高网站页面速度的14个最佳实践(2)。《高性能网站建设指南》这本书一共列出了14种提高网站速度的方法,本文总结了前7种方法。1.减少http请求1.图像映射2.CSSSprites3.内联图片4.合并脚本和样式表2.使用内容分发网络内容分发网络(CDN)是一组分布在不同地理位置的网络服务器。更有效地向用户分发内容。即利用就近原则对发送给用户的数据进行响应,从而缩短响应时间,提高网站性能。3.添加Expires标头浏览器(和代理)使用缓存来减少HTTP请求的数量和减少HTTP响应的大小,从而使网页加载速度更快。Web服务器使用Expires标头告诉Web客户端它可以使用组件的当前副本。注意:Expiresheader使用了一个特定的时间,这需要客户端和服务器的时钟严格同步。一旦两者统一,Expiresheader的时间就没有意义了。为了解决Expires头的限制,HTTP1.1引入了Cache-Control使用max-age指令来指定组件被缓存多长时间。它以秒为单位定义更新窗口。如果组件被请求后经过的秒数小于max-age,浏览器可以使用缓存版本。注意:1.HTTP1.1以下版本前仍然需要设置Expires头。为了更好的兼容性,最好同时使用HTTP1.1和max-age。在支持max-age的版本中,如果两者都存在,max-age会重写Expires头。2.使用Apache模块mod_expires启用Expires标头,以类似max-age的相对方式设置日期。这是通过Expires_Default指令实现的。时间可以以年/月/周/日/时/分/秒为单位设置。四、压缩组件1、从HTTP1.1开始,web客户端可以通过HTTP请求中的Accept-Encoding头标识是否支持压缩。接受编码:gzip、deflate;2.配置Apache1.3的gzip压缩是由mod_gzip模块b提供的。Apache2.x中的压缩是由mod_deflate模块完成的。3.代理缓存将Vary标头添加到Web服务器的响应中。Web服务器可以告诉代理根据一个或多个请求标头更改缓存的响应。Vary:Accept-Encoding在这种情况下,代理服务器将缓存每个响应的两个版本——Accept-Encoding为gzip时的压缩内容和未指定Accept-Encoding时的未压缩内容。5.将样式表放在最上面由于浏览器总是在样式表加载解析后绘制页面内容,所以只有当样式表放在底部时才会出现白屏或无样式内容闪烁的问题。6.将脚本放在页面底部。浏览器总是从上到下执行页面内容。如果将脚本放在页面的顶部,那么在加载脚本的过程中,页面的内容渲染会被阻塞!7、避免css表达式CSS表达式也会影响页面的加载时间。如果必须在页面加载记录时重新设置css样式,可以考虑使用时间处理程序而不是css表达式。
