Cabeçalhos de cache de HTTP: como deve-revalidar o trabalho?

2

Usando o trac , recebo uma resposta com o seguinte cabeçalho:

Cache-control: must-revalidate

Além disso, nenhum cabeçalho 'Expires' está sendo enviado. Nosso proxy local, no entanto, está armazenando essas respostas em cache, portanto, quando uma edição é feita, as páginas precisam ser "atualizadas com intensidade" para serem atualizadas. O proxy está se comportando mal? Outros cabeçalhos que podem ser relevantes:

Connection          Keep-Alive
Proxy-Connection    Keep-Alive
Keep-Alive          timeout=15, max=100
    
por Bobby Jack 08.04.2010 / 11:22

1 resposta

6

O HTTP permite que as respostas sejam armazenadas em cache, mesmo que elas não tenham os cabeçalhos Expires explícitos ou Cache-Control.

Especificamente, eles têm permissão para calcular seu próprio chamado frescor heurístico para respostas com determinados códigos de status HTTP (incluindo 200 OK ). Geralmente, isso é baseado no valor do cabeçalho Last-Modified ; Por exemplo, se o LM for 1 dia atrás, quando a resposta for armazenada pela primeira vez, um cache poderá descobrir que é seguro assumir que ele é recente por 2 horas.

must-revalidate é uma instrução que informa aos caches que, uma vez que algo se torna obsoleto, ele deve ser verificado no servidor de origem. Se não estiver presente, os caches podem (geralmente) usar respostas obsoletas em circunstâncias incomuns (por exemplo, se perderem contato com o servidor de origem).

Portanto, não, este cache não parece estar se comportando mal, embora pareça um pouco agressivo no cálculo de frescor heurístico. Se você não quiser que o cache armazene a resposta, tente Cache-Control: no-store ou (de preferência) apenas defina um max-age explícito para controlar por quanto tempo ele é considerado novo.

Você pode estar interessado em dar uma olhada no documento atual do Grupo de Trabalho IETF HTTPbis que cobre o armazenamento em cache:

link

que, esperamos, torne isso um pouco mais claro do que o RFC2616.

Além disso, o link verifica URLs e explica como os caches lidam com diretivas de resposta específicas.

    
por 03.05.2010 / 12:34