I'm reading contradicting statements about no-cache and must-revalidate.
This answer says:
With must-revalidate, if the server doesn't respond to a revalidation request, the browser/proxy is supposed to return a 504 error. With no-cache, it would just show the cached content
However "just show the cached content" without revalidation contradicts what is in https://datatracker.ietf.org/doc/html/rfc7234#section-5.2.1.4:
The "no-cache" request directive indicates that a cache MUST NOT use a stored response to satisfy the request without successful validation on the origin server.
If it's true that no-cache won't allow the use of a cached response without revalidation, then what is the point of must-revalidate?
A cache may serve stale responses:
Unless:
Note in particular that in this requirement
no-storeandno-cacheare cache directives, andmust-revalidateis a cache-response directive.So,
must-revalidateis for an origin server to indicate that a response may not be reused when it goes stale, as opposed to a way for clients to indicate that they would not accept a stale response.