RFC: 2068
Оригинал: Hypertext Transfer Protocol - HTTP/1.1
Другие версии: RFC 2616
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Алексей Симонов

13.4. Cachability ответа

Если определенно не сдержано Cache-Control (раздел 14.9) директива, кэширующая система может всегда хранить успешный ответ (см. раздел 13.8) как элемент кэша, может возвратить его без проверки правильности, если он нов, и может возвратить его после успешной проверки правильности. Если нет ни объекта для проверки правильности кэша, ни явное время expiration, связанное с ответом, мы не ожидаем, что он будет кэшироваться, но определенные кэши могут нарушить это ожидание (например, когда немного или нисколько сетевого обеспечения связи доступно). Клиент может обычно обнаруживать тот такой ответ, был взят от кэша, сравнивая заголовок Date с текущим временем.

Обратите внимание: Тот некоторый HTTP/1.0 кэши, как известно, нарушает это ожидание, не предоставляя Warning.

Однако, в некоторых случаях может быть неуместно для кэша сохранить объект, или возвратить его в ответ на последующий запрос. Это может быть то, потому что абсолютную семантическую прозрачность считает необходимой сервисный автор, или из-за рассмотрений частной жизни или безопасности.

Определенные директивы Cache-Control поэтому предоставлены так, чтобы сервер мог указать, что определенные объекты ресурса, или части этого, не могут кэшироваться независимо от других рассмотрений.

Обратите внимание: Тот раздел 14.8 обычно препятствует тому, чтобы общедоступный кэш сохранил и возвратил ответ на предыдущий запрос, если тот запрос включал заголовок Authorization.

Ответ, полученный с кодом состояния 200, 203, 206, 300, 301 или 410, может быть сохранен кэшем и использоваться в ответ на последующий запрос, подчиненный механизму expiration, если директива Cache-Control не запрещает кэширование. Однако, кэш, который не поддерживает Range и заголовки Content-Range, не ДОЛЖЕН кэшировать 206 (Partial Content) ответы.

Ответ, полученный с любым другим кодом состояния, не ДОЛЖЕН быть возвращен в ответе на последующий запрос, если нет директивы Cache-Control или другой заголовок (ки), которые явно позволяют его. Например, они включают следующее: заголовок Expires (раздел 14.21); "max-age", "must-revalidate", "proxy-revalidate", "public" или "private" директива Cache-Control (раздел 14.9).

2007 - 2017 © Русские переводы RFC, IETF, ISOC.