cache-control: max-age=0

Cache-Control: max-age=0 的含义是 缓存过期后,客户端必须重新请求资源 。具体行为如下:

  1. 立即失效 :当客户端收到一个 Cache-Control: max-age=0 的响应时,无论该资源是否实际上已经过期,客户端都会认为该资源已经过期,并需要向服务端发送新的请求以获取最新资源。

  2. 重新验证 :如果客户端之前缓存了该资源,并且设置了 Cache-Control: max-age=0,则客户端会在发送请求时携带 If-Not-Modified 头,沿途的每个缓存都会重新验证其缓存条目,直到到达源服务器。

  3. 状态码 :如果资源没有修改,服务器会返回 304 Not Modified 状态码;如果资源有修改,服务器会返回 200 OK 状态码。

  4. 与 no-cache 的区别 :虽然 Cache-Control: max-age=0Cache-Control: no-cache 都要求客户端在每次请求时都向服务端验证资源,但 max-age=0 会在缓存过期后立即重新验证,而 no-cache 会在每次请求时都向服务端请求最新的资源,即使缓存未过期也会进行验证。

建议

在实际应用中,如果希望资源在客户端缓存中保持最新,但又不想每次都向服务端发送请求,可以考虑使用 Cache-Control: max-age 指令,并设置一个合适的 max-age 值。如果需要确保资源始终是最新的,可以使用 Cache-Control: no-cache

Top