Http缓存

2018-05-31  本文已影响0人  anjon

参考文章:http://oohcode.com/2015/05/28/http-cache/

客户端  头字段:

Cache-Control:  (Pragma http1.0采用)

        no-store 不缓存内容

        no-cache  缓存内容,但需要进行新鲜度判断

        must-revalidate 缓存内容,必须进行新鲜度判断(类似no-cache)

        max-age  缓存内容,相对存活时间,相对与Last-Modified的时间,如果当前时间与Last时间只差小于这个值,则不用访问服务器,直接使用缓存,否者要进行新鲜度校验; 例:Cache-Control:max-age=30表示响应可以再缓存和重用 30 秒

If-Modified-Science:与Last-Modified对应

If-None-Match: 版本号   与Etag对应,前面的If-Modified-Science有一个缺点就是虽然文件的更新时间变了,但是内容并没有改变,也会重新发送文档,为了减少网络传输,这里就需要If-None-Match来判断了。主要是判断版本号与当前etag不一致时,更新文档,当Etag一致时只需更新文件更新时间就可以了

服务端  头字段:

Expires:旧版本的使用方式,date是具体的过期时间,当没有cacche-control时使用

Last-Modified:表示的就是文档在服务器上的最后更新时间

Etag:版本号 标识当前文档内容

优先级: Etag > Last-Modified 也就是说如果有Etag,就用If-None-Match来验证,否者才能用If-Modified-Science验证.

大致示意图:

上一篇 下一篇

猜你喜欢

热点阅读