建设高性能网站的14种方法笔记

1、减少http请求

  • 使用精灵图
  • 内联图片
  • 合并脚本和样式表
  • 因为每个文件都会导致一个额外的请求

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

3、添加Expires头

  • 适用于不是动态变化的资源,如图片
  • 浏览器(和代理)使用缓存来减少HTTP请求的数量,并减少HTTP响应的大小,使web浏览器的页面加载更快,使用Expires头告诉客户端它可以使用一个组件的当前副本,直到指定的时间为止。HTTP规范中简要的称该头为“在这一日期/时间之后,响应将被认为是无效的”。它在HTTP响应中发送。
Expires:Mon Oct 10 2022 08:00:00 GMT+0800

以上是一个长久的Expires头,告诉浏览器有效性持续到2022年。

  • Max-Age
  • Max-Age和mod_expires为除Expires之外的选择,HTTP1.1引入Cache-COntrol头来克服Expires头的限制,因为Expires头使用一个特定的时间,要求服务器与客户端的时间严格同步,另外,过期日期需要经常检查,并且一旦未来到达这个时间,还要在服务器配置中提供一个新的日期。
  • Cache-COntrol使用Max-Age指令指定组件被缓存多久。以秒为单位定义了一个更新窗。如果组件被请求开始过去的秒数少于max-age,浏览器就使用缓存的版本。
Cache-COntrol:max-age=10000000
  • Max-Age与Expires头可同时指定,HTTP规范规定Max-Age指令将重写Expires头。
  • mod_expires
  • 为了避免Expires的时间同步问题,可使用mod_expires模块,它可以使Expires头设置的时间成为相对时间。
  • 即使用ExpiresDefault设置Expires头

4、压缩组件

  • 从HTTP1.1开始,web客户端可以通过HTTP请求中的Accept-Encoding头来表示对压缩的支持。
Accept-Encoding:gzip,deflate
  • web服务器通过响应中的Content-Encoding头来通知web客户端。
Content-Encoding:gzip
  • 注意
  • 通常压缩脚本以及样式表。
  • 图片和pdf不应该被压缩。因为他们本身就是压缩的。再次压缩可能会让其变大
  • 通常对大于1KB或2KB的文件进行压缩。mod_gzip_minimum_file_size指令控制着希望压缩文件的最小值,默认500B。
  • Apache版本对应
  • Apache1.3--mod_gzip常用指令
//启用
mod_gzip_on  
//包括哪些文件
mod_gzip_item_include  file  \.js$
mod_gzip_item_include  mime	 ^application/x-javascript$
//不包括哪些文件
mod_gzip_item_exclude  file  \.css$
mod_gzip_item_exclude  mime	 ^text/css$
//压缩过的内容自动保存在磁盘上,并在原始内容发生变化时更新压缩过的内容
mod_gzip_can_negotiate
mod_gzip_update_static
  • 代理缓存
//压缩的和未压缩的都会进行缓存,使用的时候相应使用
Vary:Accept-Encoding
  • 边缘情形
    即通过制定浏览器白名单

5、将样式表放在顶部

  • 使用@inport引入的样式表依然是最后下载。

6、将脚本放在底部

7、避免使用css表达式

8、使用外部js和css

9、减少DNS查找

10、精简js

  • 使用JSMin工具。

11、避免重定向

  • 重定向会使你的页面变慢

12、删除重复脚本

13、配置ETag

  • etag是web服务器和浏览器用于确认缓存有效性的一种机制。

14、使ajax可缓存

总结,总体来说这本书的推荐指数为🌟🌟🌟。内容一般。。。