明确禁用REST服务的缓存

wuj*_*jek 5 rest http-caching

我将应用于Cache-Control: must-revalidate,no-cache,no-store后端REST服务的所有响应。我对此有两个问题:

  • 这样做很常见吗?出于某种原因,我认为这没有必要,但是我没有消息来源支持这一说法(尚未)。
  • 我上面提到的值真的足够,还是应该设置更多?

编辑:发现了这个:https : //devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers#cache-prevention。有人说,当没有明确配置任何内容时,浏览器可能会选择缓存,因此,是的,如果我要确保禁用缓存,就应该配置它。

Rob*_*gam 6

简短:是的,即使不存在显式控件,缓存也可能会缓存响应,您需要明确禁止它。

HTTP缓存规格第3节时的响应被禁止列表被缓存。它表明只要响应代码是可缓存的,可以缓存响应。HTTP 规范第 6.1 节中列出了可缓存的响应代码:

具有默认定义为可缓存的状态代码的响应(例如,本规范中的 200、203、204、206、300、301、404、405、410、414 和 501)可以被具有启发式过期的缓存重新使用,除非否则由方法定义或显式缓存控制指示...

“启发式到期”被定义为当不存在显式控制时分配的到期时间。(HTTP 缓存规范第 4.2 节。