![Squid 是否应在反向代理模式下尊重 no-cache 和 s-maxage?](https://linux22.com/image/526618/Squid%20%E6%98%AF%E5%90%A6%E5%BA%94%E5%9C%A8%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%B0%8A%E9%87%8D%20no-cache%20%E5%92%8C%20s-maxage%EF%BC%9F.png)
我正在使用 Squid 2.7.STABLE9,它是从源代码编译的。
我的理解no-cache
是,在提供资源的缓存副本之前,缓存必须与原始服务器重新验证,并且这通过 If-Modified-Since 标头进行。
我的理解s-maxage
是,共享缓存/代理应该将资源视为在给定的秒数内是新鲜的。
我的期望是,它Cache-Control: no-cache, s-maxage=300
应该触发 Squid 将资源视为 5 分钟的新鲜度,并且应该在提供缓存版本之前与原始服务器重新验证。
我是否正确理解了这些标头的用法? 如果是这样,我是否应该期望此行为 Squid 在配置为反向代理时执行此行为?
答案1
在您的示例中,no-cache 条目未指定字段名称,因此本节适用:
无缓存 如果 no-cache 指令未指定字段名称,则缓存不得使用响应来满足后续请求,除非与原始服务器成功重新验证。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1