I believe that must-revalidate
means :
Once the cache expires, refuse to return stale responses to the user even if they say that stale responses are acceptable.
Whereas no-cache
implies :
must-revalidate
plus the fact the response becomes stale right away.
If a response is cacheable for 10 seconds, then must-revalidate
kicks in after 10 seconds, whereas no-cache
implies must-revalidate
after 0 seconds.
At least, that's my interpretation.