Для запиту, який має використати вже збережену відповідь, HTTP визначає Cache-Control: only-if-cached.

Клієнт може надіслати його через кешувальний проксі HTTP:

curl --proxy http://127.0.0.1:3128 \
  --header 'Cache-Control: only-if-cached' \
  --include http://www.example.org/report

Кеш, що дотримується цієї директиви, має повернути збережену відповідь, узгоджену з іншими обмеженнями запиту, або 504 Gateway Timeout, коли не може його задовольнити. Тут 504 може виражати політику кешу, а не невдале TCP-з'єднання з проксі.

Директива не дозволяє автоматично застарілий вміст. Свіжість, вимоги до перевірки та відповідні поля Vary досі важливі. Директива запиту no-cache може натомість вимагати успішної перевірки на джерелі перед повторним використанням.

Це також відрізняється від налаштування офлайн-режиму перевірки кешу. only-if-cached переноситься в окремому запиті й виражає, що клієнт готовий прийняти.

Використовуйте кеш, який підтримує таку поведінку. Проігнорована директива запиту не є міжмережевим екраном, тому суворе запобігання висхідному трафіку потребує незалежно застосованої мережевої або серверної політики.

Звичайний проксі HTTPS CONNECT не бачить зашифровані заголовки HTTP і не зберігає об'єкти сторінок із цього тунелю. Приклад навмисно використовує простий ресурс HTTP, який кеш може обробити.

Схожі статті