第三章:添加Expires头 —《高性能网站建设指南》读书笔记
请求的页面中会包含多个组件,如css、js、图片和flash等。当第一次请求时,会返回HTTP 200 OK状态,并且返回页面或组件内容,浏览器将会默认缓存这些内容,当下次请求该页面时,如果返回HTTP 304 Not Modified,并不会返回内容,浏览器读取本地缓存的页面组件。因此,缓存只是减少了网络传输量,并未减少连接。
默认刷新将采取如上的方式,但使用Ctrl+F5或清空浏览器缓存后,请求页面会完整的传输所有内容,再次进行缓存。
下面的组件被指定了缓存一年,并附带有上次修改和上次浏览器取此文件的时间:
Last Modified Tue May 11 2010 17:58:07 GMT+0800 Last Fetched Tue May 11 2010 17:58:07 GMT+0800 Expires Wed May 11 2011 17:58:06 GMT+0800
更多的关于浏览器缓存及其参数可以参看浏览器缓存机制一文。
显然,对某些及时性较高的内容,是不应该强制指定缓存的。
对某些已经缓存的文件进行更新时,可以通过在文件后加时间戳或版本的形式,一旦url地址更改,浏览器缓存中无此文件,则会返回新的文件内容。
对于缓存,有善于利用者,在网站改版前,利用旧网站的空闲时间去加载即将发布的网站中的资源进行缓存。待新网站发布,则不需要等待所有的内容全部新传输,而是部分已经预缓存好了。