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