《高性能网站建设指南》读书笔记

(一)绪言

  1、绪言A

  性能黄金法则:

    只有10%~20%的最终用户响应时间花在了下载HTML文档上。其余的80%~90%时间花在了下载页面中的所有组件上。

  2、绪言B

  HTTP概述:

    HTTP是浏览器和服务器通过Internet进行相互通信的协议。

    请求的类型:GET  POST  HEAD  PUT  DELETE  OPTIONS  TRACE。

    压缩:浏览器使用Accept-Encoding头来声明它可以支持压缩。服务器使用Content-Encoding头确认响应已被压缩。

    条件GET请求:如果浏览器在其缓存中保留了组件的一个副本,但并不确定它是否仍然有效,就会生成一个条件GET请求。

           基于响应中的Last-Modified头,浏览器可以知道组件最后的修改时间。

           使用If-Modified-Since头将最后修改时间发送给服务器。服务器返回304状态码并不发送响应体,表示缓存的副本有效。

           有点:条件GET请求和304响应有助于让页面加载的更快。  缺点:但仍需要在客户端和服务器之间进行一次往返确认,以执行有效性检查。

 

      Expires:Expires头明确指出浏览器是否可以使用组件的缓存副本。当浏览器看到响应中有一个Expires头时,它会和相应的过期时间组件一起保存到其缓存中。只要组件没有过期,浏览器就会使用缓存版本而不会进行任何的HTTP请求。

    Keep-Alive:持久连接,使用Connection头来指出对Keep-Alive的支持。Connection: close头来关闭连接。对于HTTPS来说甚至更为重要,因为建立新的安全socket连接要消耗更多的时间。

(二)规则

  1、减少HTTP请求

    图片地图:使用<map>标签。缺点:在定义图片地图上的区域坐标时,如果采用手工的方式则很难完成且容易出错,而且除了矩形外几乎无法定义其他形状。通过DHTML创建的图片地图则在IE中无法工作。

    CSS Sprites:通过background-position属性指定CSS Sprites的偏移量。

    内联图片:通过使用data: URL模式可以在Web页面中包含图片但无需任何额外的HTTP请求。目前IE不支持。

    合并脚本和样式表

  2、使用内容发布网络(CDN)

    服务器离用户更近,请求响应的时间更短。性能,节省成本。

    CDN服务优点:缩短响应时间,服务包括备份、扩展存储能力和进行缓存。有助于缓和Web流量峰值压力。

        缺点:响应时间可能会受到其他网站——甚至很可能是竞争对手流量的影响。无法直接控制组件服务器所带来的特殊麻烦。如果CDN服务的性能下降了,工作质量也随之下降。

  3、添加Expires头(为组件添加长久的Epires头)

     最大化的利用浏览器的缓存能力来改善页面的性能。避免不必要的HTTP请求。

    Expires头的限制:因为使用一个特定的时间,要求服务器和客户端的时钟严格同步。过期日期需要经常检查,并且一旦未来这一天到来了,还需要在服务器配置中提供一个新的日期。

    HTTP1.1引入Cache-Control(具有优先权,避免时钟同步问题)头来克服Expires头的限制。Cache-Control使用max-age指令指定组件被缓存多久。mod_expires Apache模块通过Expires-Default指令来完成。

  4、压缩组件

    减小HTTP响应的大小来减少响应时间。

    gzip是目前最流行和最有效的压缩方法。

posted @ 2015-11-19 16:41  luodan2015  阅读(180)  评论(0编辑  收藏  举报