浏览器缓存的问题
来源:8-6 缓存6-流程图

vZina
2020-01-14
像流程图所说,如果 max-age 或者 expires 没有过期,就会直接走浏览器本地缓存,在之前课程老师也说到,
max-age 和 expires 都是浏览器端的强缓存,当这两生效的时候,他不会触发任何向服务端发起请求的过程,而是直接从浏览器端读取缓存。
这样的话就有一个问题产生,就是当我的服务端相关的一个文件其实已经被更新了,客户端还是没法感知到,如果去感知到服务端发生变化呢,实际上是有一个 last-modified 和 if-modified-since 的属性。这两个属性是基于客户端和服务等协商的缓存机制
其实max-age 和 expires 没有过期的时候,要先去判断 last-modified 和 etag,才决定要不要去走浏览器缓存。
这里的流程图好像跟之前说的不太一样,想跟老师确认下
写回答
1回答
-
千迦
2020-02-18
RegisterTopicObserver
同学你好,cache-control里的max-age,是控制的浏览器端缓存。如果命中的话,会出现200(from cache)这样的情况,他的优先级是高于last-modified的。也就是说,会存在服务端文件已经更新了,但是客户端还是用老的缓存问题的情况。
00
相似问题