1、expires 和 cache-control 都用来控制缓存的失效时间。
cache-control 的max-age的优先级要高于expires。当max-age被设定,则expires的设定会被忽略。如果没有cache-control,才会使用expires来计算失效时间。
expires 可以设定失效的时间。
2、last-modified 和 Etag 用来控制文件的有效性。
last-modified用来说明实体最后一次被更改的时间。ETag是根据实体内容生成的一段hash字符串。有一个不同,都会要拉去新版本的实体。
3、<meta http-equiv="Pragma" contect="no-cache">这个的本意是禁止一些网页可以脱机使用。尤其是针对https的网页。不过也有些资料说这个标签在IE5后已经不被支持了。根据实际的测试,这个选项现在的确不起什么作用了,有没有,表现是一样的。会完全按照1、2两点的规则来工作。
4、当页面刷新时,浏览器都会去和服务器链接一下,看看服务器该实体是否有更新。如果是304的话,就会使用本地缓存的页面,否则读取新的。