Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 20 additions & 18 deletions files/en-us/web/http/reference/headers/cache-control/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,24 +47,24 @@ Cache directives follow these rules:

The following table lists the standard `Cache-Control` directives:

| Request | Response |
| ---------------- | ------------------------ |
| `max-age` | `max-age` |
| `max-stale` | - |
| `min-fresh` | - |
| - | `s-maxage` |
| `no-cache` | `no-cache` |
| `no-store` | `no-store` |
| `no-transform` | `no-transform` |
| `only-if-cached` | - |
| - | `must-revalidate` |
| - | `proxy-revalidate` |
| - | `must-understand` |
| - | `private` |
| - | `public` |
| - | `immutable` |
| - | `stale-while-revalidate` |
| `stale-if-error` | `stale-if-error` |
| Request | Response |
| ----------------------------------- | --------------------------------------------------- |
| [`max-age`](#max-age) | [`max-age`](#max-age) |
| [`max-stale`](#max-stale) | - |
| [`min-fresh`](#min-fresh) | - |
| - | [`s-maxage`](#s-maxage) |
| [`no-cache`](#no-cache) | [`no-cache`](#no-cache) |
| [`no-store`](#no-store) | [`no-store`](#no-store) |
| [`no-transform`](#no-transform) | [`no-transform`](#no-transform) |
| [`only-if-cached`](#only-if-cached) | - |
| - | [`must-revalidate`](#must-revalidate) |
| - | [`proxy-revalidate`](#proxy-revalidate) |
| - | [`must-understand`](#must-understand) |
| - | [`private`](#private) |
| - | [`public`](#public) |
| - | [`immutable`](#immutable) |
| - | [`stale-while-revalidate`](#stale-while-revalidate) |
| [`stale-if-error`](#stale-if-error) | [`stale-if-error`](#stale-if-error) |

Note: Check the [compatibility table](#browser_compatibility) for their support; user agents that don't recognize them should ignore them.

Expand Down Expand Up @@ -144,6 +144,8 @@ Note that `no-cache` does not mean "don't cache". `no-cache` allows caches to st
> Even when bfcache is not used, the browser may still serve the cached response without revalidating.
> This is [allowed by the specification](https://httpwg.org/specs/rfc7234.html#history.lists) because history navigations are usually treated as restoring a snapshot of a historical session and not a new request for a previously visited page.

#### `must-revalidate`

The `must-revalidate` response directive indicates that the response can be stored in caches and can be reused while [fresh](/en-US/docs/Web/HTTP/Guides/Caching#fresh_and_stale_based_on_age). If the response becomes [stale](/en-US/docs/Web/HTTP/Guides/Caching#fresh_and_stale_based_on_age), it must be validated with the origin server before reuse.

Typically, `must-revalidate` is used with `max-age`.
Expand Down