http缓存机制

之前一直有阅读http权威指南或相关的书籍,但没有深刻的实践与思考,这部分知识理论是很难理解的,

因为都是理论,实践起来是比较难的在没有指导的情况下,因为web开发的人很少有人真的理解这部分

内容并透彻运用,而http缓存机制一般是使用默认的就可以了,没有必要去调整,因为缓存是为了更好

的体验,所以没有必要设置禁止之类的,都是针对性的让某个文件更新,比如加版本号、hash改变名称

之类的,让文件请求识别为新文件而解决缓存问题。

http缓存信息都在报文头里,而http请求缓存处理有两种,一种为强缓存,一种为协助缓存,而强缓存为

浏览器端的缓存,就是资源都在浏览器端直接获取不去服务器,而协助缓存就是先去服务器对比后明确

是否缓存后获取缓存信息,而一般强缓存优先,后到协助缓存,如network的size字段为from cache为强缓存,

而状态码为304为协助缓存。

而具体阻止可以使用no-cache、no-store。

具体资料:

彻底理解HTTP缓存

而浏览器的历史记录的缓存和http缓存是有区别的,所以之前一直让我无法清除缓存的原因是因为我使用浏览器

的后退前进按钮实践查看清除缓存情况无效的源头,而解决的方式是刷新或替换历史记录当前路径让资源被重新

请求。

用户代理通常具有历史机制,例如“后退”按钮和历史列表,可以用来重新显示会话中较早检索到的实体。

历史机制和缓存是不同的。特别地,历史机制不应试图显示资源的当前状态的语义上透明的视图。更确切地说,历史机制的目的是准确地显示用户在检索资源时所看到的内容。

默认情况下,过期时间不适用于历史机制。如果实体仍然处于存储状态,即使实体已经过期,历史机制也应该显示它,除非用户已经专门配置了代理来刷新过期的历史文档。

这不应被解释为禁止历史机制告诉用户视图可能是陈旧的。

翻译于资料:caching in HTTP

资料2

原文地址:https://www.cnblogs.com/zhangzhicheng/p/8992863.html