only-if-cached żąda zapisanej odpowiedzi od proxy
Poproś współpracujący cache HTTP o istniejącą odpowiedź i interpretuj 504 jako chybienie, a nie jako kontrolę wyjścia na poziomie sieci.
Dla żądania, które ma użyć już zapisanej odpowiedzi, HTTP definiuje Cache-Control: only-if-cached.
Klient może je wysłać przez proxy buforujące HTTP:
curl --proxy http://127.0.0.1:3128 \
--header 'Cache-Control: only-if-cached' \
--include http://www.example.org/report
Cache respektujący tę dyrektywę powinien zwrócić zapisaną odpowiedź zgodną z pozostałymi ograniczeniami żądania albo 504 Gateway Timeout, gdy nie może go zaspokoić. Tutaj 504 może wyrażać politykę cache, a nie nieudane połączenie TCP z proxy.
Dyrektywa nie autoryzuje automatycznie nieaktualnej treści. Świeżość, wymagania walidacji i pasujące pola Vary nadal mają znaczenie. Dyrektywa żądania no-cache może natomiast wymagać udanej walidacji u źródła przed ponownym użyciem.
Różni się to także od ustawiania trybu walidacji offline cache. only-if-cached jest przenoszone na pojedynczym żądaniu i wyraża, co klient jest gotów otrzymać.
Używaj cache, który obsługuje takie zachowanie. Zignorowana dyrektywa żądania nie jest zaporą sieciową, więc ścisłe blokowanie ruchu wychodzącego wymaga niezależnie egzekwowanej polityki sieci lub serwera.
Zwykłe proxy HTTPS CONNECT nie widzi zaszyfrowanych nagłówków HTTP ani nie zachowuje obiektów strony z tego tunelu. Przykład celowo używa prostego zasobu HTTP, który cache może przetworzyć.