“必须重新验证”和“代理重新验证”有什么区别?

Jay*_*Jay 4 http cache-control

以我的理解,这两个指令都意味着缓存服务器将要求原始服务器重新验证来自客户端浏览器的请求。这两个指令之间有什么区别?

Joh*_*ger 6

RFC 7234第5.2.2.7节解释了:

“ proxy-revalidate”响应伪指令与must-revalidate响应伪指令具有相同的含义,只是它不适用于专用缓存。

(添加了强调。) 该规范的早期版本继续描述了如何使用它:

可以将其用于对已认证请求的响应,以允许用户的缓存存储并稍后返回响应而无需重新验证响应(因为该用户已对该响应进行了一次认证),同时仍然需要为许多用户提供服务的代理每次都重新验证(以确保每个用户都已通过身份验证)。请注意,这种经过身份验证的响应还需要使用公共缓存控制指令,以便完全缓存它们。