only-if-cached pede uma resposta armazenada ao proxy
Peça a um cache HTTP cooperante uma resposta existente e interprete um 504 como falha de cache, não como controle de saída em nível de rede.
Para um pedido que deve usar uma resposta já armazenada, o HTTP define Cache-Control: only-if-cached.
O cliente pode enviá-lo através de um proxy de cache HTTP:
curl --proxy http://127.0.0.1:3128 \
--header 'Cache-Control: only-if-cached' \
--include http://www.example.org/report
Um cache que respeite esta diretiva deve devolver uma resposta armazenada coerente com as restantes restrições do pedido, ou 504 Gateway Timeout quando não a conseguir satisfazer. Aqui, um 504 pode exprimir a política do cache e não uma ligação TCP falhada ao proxy.
A diretiva não autoriza automaticamente conteúdo obsoleto. A frescura, os requisitos de validação e campos Vary correspondentes continuam a importar. A diretiva de pedido no-cache pode, em vez disso, exigir uma validação bem-sucedida na origem antes da reutilização.
Isto também difere de configurar um modo de validação offline do cache. only-if-cached é transportado no pedido individual e exprime o que o cliente aceita receber.
Use um cache que suporte este comportamento. Uma diretiva de pedido ignorada não é uma firewall, por isso impedir rigorosamente o tráfego de saída exige uma política de rede ou de servidor aplicada de forma independente.
Um proxy HTTPS CONNECT comum não vê os cabeçalhos HTTP cifrados nem retém objetos de página desse túnel. O exemplo usa deliberadamente um recurso HTTP simples que o cache consegue processar.