# Server Cache Control Directives

The table below lists the cache control directives supported by an HTTP server.

| Directive | Behavior |
| --- | --- |
| no-cache | Caches cannot use a particular response to satisfy subsequent requests<br>without first revalidating that response with the server. If specific response<br>header fields are specified with this value, the restriction applies only to<br>those header fields within the response. If no response header fields are<br>specified, the restriction applies to the entire response. |
| public | Any cache can store the response. |
| private | Public (shared) caches cannot store the response because the response is<br>intended for a single user. If specific response header fields are specified<br>with this value, the restriction applies only to those header fields within the<br>response. If no response header fields are specified, the restriction applies to<br>the entire response. |
| no-store | Caches must not store any part of response or any part of the request that<br>invoked it. |
| no-transform | Caches must not modify the media type or location of the content in a<br>response between a server and a client. |
| must-revalidate | Caches must revaildate expired entries that relate to a response before that<br>entry can be used in a subsequent response. |
| proxy-revalidate | Means the same as must-revalidate, except that it can only be enforced on<br>shared caches and is ignored by private unshared caches. If using this<br>directive, the public cache directive must also be used. |
| max-age | Clients can accept a response whose age is no greater that the specified<br>number of seconds. |
| s-max-age | Means the same as max-age, except that it can only be enforced on shared<br>caches and is ignored by private unshared caches. The age specified by s-max-age<br>overrides the age specified by max-age. If using this directive, the<br>proxy-revalidate directive must also be used. |
| cache-extension | Specifies additional extensions to the other cache directives. Extensions<br>might be informational or behavioral. An extended directive is specified in the<br>context of a standard directive, so that applications not understanding the<br>extended directive can at least adhere to the behavior mandated by the standard<br>directive. |