Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. HTTP
  3. Reference
  4. Заголовки HTTP
  5. Cache-Control

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Cache-Control

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

Общий заголовокCache-Control используется для задания инструкций кеширования как для запросов, так и для ответов. Инструкции кеширования однонаправленные: заданная инструкция в запросе не подразумевает, что такая же инструкция будет указана в ответе

Header typeGeneral header
Forbidden header nameнет
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-cacheCache-Control: no-storeCache-Control: no-transformCache-Control: only-if-cached

Инструкции кеширования для ответов

Стандартные инструкцииCache-Control, которые могут задаваться сервером для HTTP ответа.

Cache-Control: must-revalidateCache-Control: no-cacheCache-Control: no-storeCache-Control: no-transformCache-Control: publicCache-Control: privateCache-Control: proxy-revalidateCache-Control: max-age=<seconds>Cache-Control: s-maxage=<seconds>

Расширенные инструкцииCache-Control

Расширенные инструкцииCache-Control не являются частью базовых стандартов, описывающих кеширование в HTTP. Втаблице совместимости указаны браузеры, которые поддерживают расширенные инструкции.

Cache-Control: immutableCache-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>Экспериментальная возможность

Указывает, что клиент хочет получить просроченный ответ, одновременно осуществляя фоновую проверку наличия свежих данных. Значение в секундах обозначает, какое время клиент желает получать просроченный ответ.

stale-if-error=<seconds>Экспериментальная возможность

...

Управление ревалидацией и перезагрузкой

must-revalidate

Кеш должен проверить статус устаревших ресурсов перед их использованием. Просроченные ресурсы не должны быть использованы.

proxy-revalidate

То же самое, чтоmust-revalidate, но применимо только к разделяемым кешам (например, прокси) и игнорируется частными кешами.

immutable

Indicates that the response body will not change over time. The resource, if unexpired, is unchanged on the server and therefore the client should not send a conditional revalidation for it (e.g.If-None-Match orIf-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 onhttps:// transactions. For more information, see also thisblog post.

Другие инструкции

no-store

Кеш не должен хранить никакую информацию о запросе и ответе

no-transform

Никакие преобразования не должны применяться к ресурсу. ЗаголовкиContent-Encoding,Content-Range,Content-Type не должны изменяться прокси. Непрозрачный прокси может, например, конвертировать изображения из одного формата в другой для сохранения дискового пространства или уменьшения трафика. Инструкцияno-transform запрещает это.

Примеры

Выключение кеширования

Для выключения кеширования возможно добавить следующий заголовок к ответу. Дополнительно см. заголовкиExpires иPragma.

bash
Cache-Control: no-cache, no-store, must-revalidate

Кеширование статического контента

Для файлов, которые не будут изменяться обычно возможно применить агрессивное кеширование, отослав ответ с заголовком ниже. Например, такой ответ может быть послан для изображений, файлов CSS и JavaScript. Дополнительно см. заголовокExpires.

bash
Cache-Control: public, max-age=31536000

Спецификации

Specification
HTTP Caching
# field.cache-control
HTTP Immutable Responses
# the-immutable-cache-control-extension

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp