文档中心 >Google PageSpeed

声明缓存验证工具

概览

所有的静态资源应该有一个Last-ModifiedETag头,这将允许浏览器利用高速缓存的全部好处。

说明

Last-Modified

在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:

Last-Modified: Fri, 12 May 2006 18:53:33 GMT

客户端第二次请求此URL时,会在头部加入一个属性,询问该时间之后文件是否有被修改过:

If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT 

如果服务器端的文件没有被修改过,则返回状态是304,内容为空,这样就节省了传输数据量。如果服务器端的文件被修改过,则返回和第一次请求时类似。 

ETag 

和Last-Modified类似,由于RFC2616(也就是HTTP/1.1)中没有说明ETag该是什么格式的,只要确保用双引号括起来就行了,所以你可以用文件的hash,甚至是直接用Last-Modified,以下是服务器端返回的格式: 

ETag: "50b1c1d4f775c61:df3" 

客户端的查询更新格式是这样的: 

If-None-Match: W/"50b1c1d4f775c61:df3" 

如果ETag没改变,则返回状态304然后不返回,这也和Last-Modified一样。

如何配置ETag?请移步至配置ETag了解更多。