高性能web网站优化原则3——增加Expires头

Expires头
   浏览器使用cache来减少http请求并降低响应内容的大小,使得页面加载速度更快。web服务器使用Expires头来通知web客户端它可以使用当前已cache的组件直到时间超期。http规范中是这么描述的:the date/time after which the response is considered stale.由http响应发送给客户端 Expires: Thu, 19 Jun 2016 20:00:00 GMT
   如果这个是在下载页面中图片的时候返回的,那么浏览器就会在后续的页面中使用cache中的图片。从而减少了http请求数量。
 
Max-Age
   Cache-Control头是在HTTP/1.1中被引入的,目的是为了克服Expires的局限性。因为Expires指定了一个具体的日期,要求在服务器和客户端之间有严格的时钟同步要求。同时,到期日期必须经常检查,当快临近到期日期时,必须在服务器设置一个新的日期。
   另外Cache-Control使用max-age指令来指定一个组件被cache多长时间,它以秒级别来定义,如果客户端请求的cache组件小于max-age指定的秒,浏览器就用cache的版本,这样避免了额外的http请求。可以指定10年时常,例如:Cache-Control: max-age=315360000
   如果同时指定Cache-Control max-age和Expires,那么max-age会覆盖Expires

修改文件名
如果页面组件被浏览器cache的话,用户如何获取最新的组件?当设定Expires之后,如果过期时间很长,浏览器就会一直用cach的版本。这也是使用Expires可以显著的减少浏览器响应时间的原因,它直接从磁盘读取cache的组件而不会产生任何的http流量。然而,即使更新了服务器组件,用户也很可能不会使用更新过的组件,因为先前的版本仍然在cach中。为了确保用户取得最新版本的组件,在html文档中更改组件文件名是一个不错的方法。例如将example_1.0.js改为example_2.0.js

你可能感兴趣的:(expires)