http中和缓存相关的header

HTTP/1.1协议中和网页缓存相关的字段:浏览器

header 解释 例子
Expires 响应过时的日期和时间 Expires: Thu, 01 Dec 2010 16:00:00 GMT
Cache-Control 告诉全部的缓存机制是否能够缓存及哪一种类型 Cache-Control: no-cache
Last-Modified 请求资源的最后修改时间 Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT
ETag 请求变量的实体标签的当前值 ETag: “737060cd8c284d8af7ad3082f209582d”

HTTP/1.0协议中有一个功能比较弱的缓存控制机制:Pragma,使用HTTP/1.0的缓存将忽略ExpiresCache-Control缓存

Expires

Expires字段声明了一个网页或URL地址再也不被浏览器缓存的时间,一旦超过了这个时间,浏览器都应该联系原始服务器。服务器

Cache-Control

Cache-Control字段中能够声明多些元素,例如no-cache, must-revalidate, max-age=600(文件被用户访问后的存活时间)等。这些元素用来指明页面被缓存最大时限,如何被缓存的,如何被转换到另外一个不一样的媒介,以及如何被存放在持久媒介中的。code

Last-Modified

Last-ModifiedETag是条件请求(Conditional Request)相关的两个字段。若是一个缓存收到了针对一个页面的请求,它发送一个验证请求询问服务器页面是否已经更改,在HTTP头里面带上ETagIf Modify Since。服务器根据这些信息判断是否有更新信息,若是没有,就返回HTTP 304(NotModify);若是有更新,返回HTTP 200和更新的页面内容,而且携带新的ETagLastModified资源

ETag

既然有了Last-Modified,为何还要用ETag字段呢?由于若是在一秒钟以内对一个文件进行两次更改,Last-Modified就会不正确。所以,HTTP/1.1利用Entity Tag头提供了更加严格的验证。it

相关文章
相关标签/搜索