http缓存机制
Posted 小数点就是问题
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http缓存机制相关的知识,希望对你有一定的参考价值。
之前一直有阅读http权威指南或相关的书籍,但没有深刻的实践与思考,这部分知识理论是很难理解的,
因为都是理论,实践起来是比较难的在没有指导的情况下,因为web开发的人很少有人真的理解这部分
内容并透彻运用,而http缓存机制一般是使用默认的就可以了,没有必要去调整,因为缓存是为了更好
的体验,所以没有必要设置禁止之类的,都是针对性的让某个文件更新,比如加版本号、hash改变名称
之类的,让文件请求识别为新文件而解决缓存问题。
http缓存信息都在报文头里,而http请求缓存处理有两种,一种为强缓存,一种为协助缓存,而强缓存为
浏览器端的缓存,就是资源都在浏览器端直接获取不去服务器,而协助缓存就是先去服务器对比后明确
是否缓存后获取缓存信息,而一般强缓存优先,后到协助缓存,如network的size字段为from cache为强缓存,
而状态码为304为协助缓存。
而具体阻止可以使用no-cache、no-store。
具体资料:
而浏览器的历史记录的缓存和http缓存是有区别的,所以之前一直让我无法清除缓存的原因是因为我使用浏览器
的后退前进按钮实践查看清除缓存情况无效的源头,而解决的方式是刷新或替换历史记录当前路径让资源被重新
请求。
用户代理通常具有历史机制,例如“后退”按钮和历史列表,可以用来重新显示会话中较早检索到的实体。
历史机制和缓存是不同的。特别地,历史机制不应试图显示资源的当前状态的语义上透明的视图。更确切地说,历史机制的目的是准确地显示用户在检索资源时所看到的内容。
默认情况下,过期时间不适用于历史机制。如果实体仍然处于存储状态,即使实体已经过期,历史机制也应该显示它,除非用户已经专门配置了代理来刷新过期的历史文档。
这不应被解释为禁止历史机制告诉用户视图可能是陈旧的。
翻译于资料:caching in HTTP
以上是关于http缓存机制的主要内容,如果未能解决你的问题,请参考以下文章
HTTP学习彻底弄懂 Http 缓存机制 - 浏览器缓存机制详解