Obtendo “Response is old” do proxy do Squid [closed]

1

Estou vendo os registros nas ferramentas do Chrome Dev. Eu também posso ver isso usando curl. Aqui está a saída da onda

Content-Type: application/javascript
Date: Sat, 24 Sep 2016 01:16:37 GMT
ETag: "a02d00a09b8139b0919567e4c92cc752"
Last-Modified: Fri, 23 Sep 2016 22:57:56 GMT
Server: nginx
x-amz-id-2: L3gfIQNLcBLUZ2gtVWDiIdN9xWWiV2H6K6zjjE9JSHVMnDXI6+uLuhqptqQRCZLNFoMmWg3mIQs=
x-amz-request-id: E38062B3D506DF06
Content-Length: 1940494
Age: 7574
Warning: 110 squid/3.5.20 "Response is stale"
X-Cache: HIT from 0.0.0.0
X-Cache-Lookup: HIT from 0.0.0.0:3128
Via: 1.1 0.0.0.0 (squid/3.5.20)
Connection: keep-alive

Por que o Squid está dizendo Warning: 110 squid/3.5.20 "Response is stale" ?

    
por devwannabe 24.09.2016 / 05:26

1 resposta

2

O Squid adiciona este cabeçalho porque é requerido pelas especificações de caching HTTP. link :

The "Warning" header field is used to carry additional information about the status or transformation of a message that might not be reflected in the status code. This information is typically used to warn about possible incorrectness introduced by caching operations or transformations applied to the payload of the message.

e a seção 5.5.1 simplesmente afirma que os caches são necessários (DEVE) para enviar o aviso 110 quando os objetos HIT são obsoletos. "DEVE" Os requisitos de RFC são aqueles que devem ser seguidos, a menos que exista uma razão específica, muito boa e documentada. Os avisos são informativos, portanto não há uma boa razão para evitá-los.

O conteúdo obsoleto não é apenas antigo, mas também passou de um ponto em que o cache deveria perguntar a um servidor se existe uma cópia mais recente (revalidação). Portanto, o aviso está dizendo que se você realmente tiver atualizado a cópia do servidor, o cache ainda teria entregue a versão antiga dele. Isso é potencialmente uma falha muito séria no comportamento do aplicativo HTTP, especialmente quando .js está envolvido.

Essa situação geralmente é causada pelo administrador que está configurando algumas configurações de refresh_pattern que violam os requisitos de HTTP para revalidação. Por exemplo, as opções ignore- * para forçar um objeto a ser servido como-é do cache, em vez de revalidar.

Como esta resposta não tem um cabeçalho de Cache-Control, os valores de refresh_pattern min / pct / max são o que o Squid usa para calcular a idade de staleness. Você pode querer considerar aumentar esses valores para deixar os objetos com tempos de vida HIT mais longos em vez de ignorar / violar os requisitos HTTP.

    
por 27.09.2016 / 22:41

Tags