Yahoo军规-提高网站性能

  1. 尽可能减少http的请求数。 http请求: 从客户端到服务器端的请求消息,包括消息首行中,对资源的请求方法,资源的标识符以及使用的协议。

  2. 使用CDN(内容分发网络),解决网络拥挤。CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,目的是使得用户可以就近的取到数据, 提高用户访问网站的速度。

  3. 添加Expire/Cache-Control头。当浏览器请求服务器的时候,服务器会返回资源的同时返回一个expire的http头,expire头的头内容是一个时间值,值就是资源在本地的过期时间,存在本地。在本地缓存阶段找到了对应的资源之,当没有超过过期时间的时候,再次请求,就会直接使用这一个资源而不会发生http请求。
    Cache-Control头是http协议中常用的头部之一,负责页面的缓存机制。】

  4. 启用gzip压缩。在服务器将文件进行压缩,然后在传输到浏览器,浏览器在进行解压缩并且解析。提升文件传输速度,主要是在服务器端进行配置。

  5. 层叠样式表CSS表放置在页面头部。务必将css放置在head标签中,提高渲染性能和避免页面出现白屏闪烁问题。

  6. script标签放在在最下面。

  7. 避免在CSS中使用expressions(CSS表达式) ,比如鼠标的移动或者点击会造成CSS表达式进行很多次(非常高)计算,影响性能。

  8. 将js和css作为外部文件导入。

  9. 减少DNS查询。访问www.a.com的时候,将先转换为ip地址,计算机认识的ip地址,然后在返回对应的www.a.com的资源,不过大多数的浏览器都是存在缓存机制的,会缓存DNS,缓存的时间各有不同。根据实际情况,采用单域(将资源放置在单个服务器)或者多域(资源放置在多个服务器)来配置网站资源。

  10. 最小化js和css体积,上线前将js和css进行压缩。

  11. 避免重定向,重定向:用户的原始请求被转向了其他位置的请求。301/302重定向。

    301 Moved Permanently 被移动到了其他位置,是永久重定向(比如a.com 转向了 b.com)
    302 Found 被找到了但是不在原始地址,是临时重定向(比如先找到 a.com在跳转到 b.com)
    =>对于搜索引擎,会不定期查询扫描网站内容,完善索引结构。搜索引擎不定期爬网的时候发现301的时候就会将a.com删除,重而保留b.com.301使得搜索引擎更加智能,302跳转,就是一定会重a.com,再跳转到 b.com 是一种机械性的跳转。
    但是都要避免重定向!!!!
    因为增加了浏览器到服务器端的往返次数,如下:
    Yahoo军规-提高网站性能

  12. 移除重复的脚本。

  13. 配置实体标签(ETag)—-Entity Tag(实体标签)包含在响应头信息中 Yahoo军规-提高网站性能
    使用特殊的字符串来标识某个请求的资源版本。
    当浏览器向服务器发送请求的时候,服务器会检查ETag是否一致,如果一致,那么资源没有被修改过,服务器返回304码, 浏览器就可以直接使用本地缓存的资源;从而减轻服务器的压力。

  14. 使用Ajax缓存