only-if-cached پاسخ ذخیرهشده را از پروکسی میخواهد
از یک کش HTTP همکار پاسخ موجود را بخواهید و 504 را نشانه نبودن پاسخ بدانید، نه کنترل خروج در سطح شبکه.
برای درخواستی که باید از پاسخ از پیش ذخیرهشده استفاده کند، 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 استفاده میکند که کش میتواند پردازش کند.