LAMP之路

不积跬步,无以至千里!

添加Expires数据头,以提高页面载入速度

2012-10-18 一抹阳光 优化运营

今天要谈的是Expires数据头。现在的网页不再是十年前只有html文本,或者加上少量的图片的网页了。大量的装饰性图片,css文件,以及js的广泛应用,使每次打开一个页面,下载的文件都在几十个以上。
而其中有大量的文件是重复使用的,这时利用缓存就可以起到一个重要的提速作用。

首先出场的就是Expires数据头。
通常的写法是:
Expires: Thu,16 May 2013 12:00:00 GMT
记得最长不要超过1年。
这个用法指明了页面组件内容的过期日期,只要还在日期范围内,就直接使用缓存中的文件。这依赖于时钟同步以及不断的比较时间。

另一种替换做法是Max-Age
通常的写法是:
Cache-Control:max-age=31536000
同样也是一年的有效期。

当两种数据头都存在时,Max-Age有较大的优先权。
具体的实现方法,一般都是利用Apache的mod-expires模块,在.htaccess里面定义的。

对于不同类型的文件,设定不同的有效期限。
比如图片文件,主要是装饰性的,DavidYin建议设定为1年;CSS文件就可以设为30天,js文件也是同样的30天。

另外还有两种利用缓存的方法,也稍微提及一下:
Last-Modified
Etag
这两个属于弱缓存数据头,仍然需要消耗http连接,而Expires和Max-Age则不会。