--- title: Cache-Control slug: Web/HTTP/Headers/Cache-Control tags: - Кеширование translation_of: Web/HTTP/Headers/Cache-Control original_slug: Web/HTTP/Заголовки/Cache-Control ---
Общий заголовок Cache-Control
используется для задания инструкций кеширования как для запросов, так и для ответов. Инструкции кеширования однонаправленные: заданная инструкция в запросе не подразумевает, что такая же инструкция будет указана в ответе
Header type | {{Glossary("General header")}} |
---|---|
{{Glossary("Forbidden header name")}} | нет |
{{Glossary("Simple response header", "CORS-safelisted response-header")}} | да |
Инструкции не чувствительны к регистру и имеют необязательный аргумент, который может быть указан как в кавычках, так и без них. Несколько инструкций разделяются запятыми.
Стандартные инструкции Cache-Control
, которые могут задаваться клиентом для HTTP запроса.
Cache-Control: max-age=<seconds> Cache-Control: max-stale[=<seconds>] Cache-Control: min-fresh=<seconds> Cache-Control: no-cache Cache-Control: no-store Cache-Control: no-transform Cache-Control: only-if-cached
Стандартные инструкции Cache-Control
, которые могут задаваться сервером для HTTP ответа.
Cache-Control: must-revalidate Cache-Control: no-cache Cache-Control: no-store Cache-Control: no-transform Cache-Control: public Cache-Control: private Cache-Control: proxy-revalidate Cache-Control: max-age=<seconds> Cache-Control: s-maxage=<seconds>
Cache-Control
Расширенные инструкции Cache-Control
не являются частью базовых стандартов, описывающих кеширование в HTTP. В таблице совместимости указаны браузеры, которые поддерживают расширенные инструкции.
Cache-Control: immutable Cache-Control: stale-while-revalidate=<seconds> Cache-Control: stale-if-error=<seconds>
public
private
no-cache
only-if-cached
max-age=<seconds>
Expires
, данная инструкция является относительной по отношению ко времени запроса.s-maxage=<seconds>
max-age
или заголовок Expires
, но применяется только для разделяемых кешей (например, прокси) и игнорируется частными кешами.max-stale[=<seconds>]
min-fresh=<seconds>
stale-while-revalidate=<seconds>
{{experimental_inline}}stale-if-error=<seconds>
{{experimental_inline}}must-revalidate
proxy-revalidate
must-revalidate
, но применимо только к разделяемым кешам (например, прокси) и игнорируется частными кешами.immutable
If-None-Match
or If-Modified-Since
) to check for updates, even when the user explicitly refreshes the page. Clients that aren't aware of this extension must ignore them as per the HTTP specification. In Firefox, immutable
is only honored on https://
transactions. For more information, see also this blog post.no-store
no-transform
Content-Encoding
, Content-Range
, Content-Type
не должны изменяться прокси. Непрозрачный прокси может, например, конвертировать изображения из одного формата в другой для сохранения дискового пространства или уменьшения трафика. Инструкция no-transform
запрещает это.Для выключения кеширования возможно добавить следующий заголовок к ответу. Дополнительно см. заголовки Expires
и Pragma
.
Cache-Control: no-cache, no-store, must-revalidate
Для файлов, которые не будут изменяться обычно возможно применить агрессивное кеширование, отослав ответ с заголовком ниже. Например, такой ответ может быть послан для изображений, файлов CSS и JavaScript. Дополнительно см. заголовок Expires
.
Cache-Control: public, max-age=31536000
Specification | Title |
---|---|
{{RFC("7234")}} | Hypertext Transfer Protocol (HTTP/1.1): Caching |
{{RFC("5861")}} | HTTP Cache-Control Extensions for Stale Content |
{{RFC("8246")}} | HTTP Immutable Responses |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("http.headers.Cache-Control")}}