ocache、
ostore、maxage、maxstale、mi
fresh、o
lyifcached
响应消息中的指令包括
public、private、
ocache、
ostore、
otra
sform、mustrevalidate、proxyrevalidate、maxage
各个消息中的指令含义如下:1Public指示响应可被任何缓存区缓存。2Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
f3
ocache指示请求或响应消息不能缓存4
ostore用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。5maxage指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。6mi
fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。7maxstale指示客户机可以接收超出超时期间的响应消息。如果指定maxstale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。EtagIfNo
eMatch一对验证文件实体的标记“E
tityTag”的响应请求头Apache中,ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的LastModifiedIfModifiedSi
ce一对验证文件的修改时间的响应请求头Expires、CacheCo
trol、LastModified、ETag是RFC2616(HTTP11)协议中和网页缓存相关的几个字段。前两个用来控制缓存的失效日期,浏览器可通过它来判定,需不需要发出HTTP请求;后两个用来验证网页的有效性,服务器端利用它来验证这个文件是否需要重新返回LastModifiedVSEtag既然有了LastModified,为什么还要用ETag字段呢?因为如果在一秒钟之内对一个文件进行两次更改,LastModified就会不正确。因此,HTTP11利用E
tityTag头提供了更加严格的验证。不同的情况上面描述的是一个普通的浏览器缓存状态,在实际应用中,如页面跳转(点击页面链接跳转,wi
dowope
,在地址栏敲回车,刷新页面)等操作,会有一些区别普通页面跳转普通页面跳转包括链接点击跳转,用js脚本打开新页面(wi
dowope
)无缓存情况下,请求会返回所有资源结果设置Expires并且未过期时,浏览器将不会发出http请求
f如果Expires过期,则会发送相应请求,并附带上LastModifed等信息,供服务器校验页面刷新F5这种情况一下,一般会看到很多304的请求,就是说即便资源设置了Expires且未过期,浏览器也会发送相应请求IE和FF稍有区别IE
IfModifiedSi
ceIfNo
eMatchPragma
ocacheWed18Nov2009155452GMT禁止缓存