请参见上面的屏幕截图。响应标头的缓存控制设置为max-age
,这意味着资源被视为新鲜的最长时间。我相信,如果我们在该时间段内发出请求,浏览器将提供本地副本,而不会打扰服务器。,并且请求标头的缓存控制设置为no-cache
,表示according to MDN,
响应可以由任何缓存存储,即使请求正常 不可缓存。但是,存储的响应必须始终会通过 在使用原始服务器之前,请先与原始服务器进行验证,
所以在这里我们有一个矛盾。在这种情况下,浏览器会遵循哪个缓存控制指令,即,每次请求触发时,都会按照on-cache
的建议与服务器进行验证,或者如果请求在请求的时间范围内,则不与服务进行验证max-age
答案 0 :(得分:1)
没有矛盾。 request 上的no-cache
告诉任何中间服务器他们不能用缓存的副本进行响应。他们必须联系原始服务器。 响应上的max-age
告诉客户端可以认为响应新鲜的时间有多长时间。请注意,询问浏览器是否将“符合”请求标头没有任何意义。它是创建请求标头的那个。
更一般地说,重点是标题在请求和响应上的含义不同。在MDN文章中看不出来,但是差异在the specification中有详细说明。