A mídia do cache do Firefox e do Chromium é exibida a partir do host local?

2

Estou desenvolvendo um aplicativo da web e configurei meus arquivos JavaScript e CSS para que os futuros futuros expirem. Eu mando de volta para o cliente que cada arquivo foi modificado pela última vez há um ano e que cada arquivo expira em um ano. O problema é que o Firefox e o Chromium parecem ignorar os cabeçalhos de resposta e refazer os arquivos estáticos toda vez que a página é recarregada.

O Opera, por outro lado, está operando como esperado. Isto é, armazena em cache os arquivos com o futuro distante expirando.

Estou usando o Ubuntu 10.04, o Firefox 3.6.8 e o Chromium 5.0.375.125. O Firefox e o Chromium estão configurados para não armazenar em cache os arquivos do host local por padrão? Existe uma maneira de alterar essa configuração? Alguém tem idéias sobre o que mais pode estar fazendo com que eles não armazenem em cache?

Estes são os cabeçalhos de resposta que eu envio de volta para o cliente:

Server    Development/1.0
Date    Tue, 31 Aug 2010 15:44:16 GMT
Content-Language    en
Expires    Wed, 31 Aug 2011 15:44:16 GMT
Vary    Accept-Language, Cookie
Last-Modified    Mon, 31 Aug 2009 15:44:16 GMT
Cache-Control    max-age=31536000
Content-Type    text/css
Content-Length    32493

Obrigado!

    
por J. Frankenstein 31.08.2010 / 17:48

1 resposta

0

Para responder à sua pergunta, o Chromium e o Firefox, ou qualquer outro navegador, armazenam em cache os arquivos do host local. O problema é que você está usando uma diretiva que é mantida apenas para compatibilidade com versões anteriores.

Em outras palavras, nos velhos tempos este era o caminho a percorrer. Ao definir a data de expiração no passado distante, eles forçariam um navegador a não exibir uma página do cache. Provavelmente, o Chromium e / ou o Firefox apenas ignoram esta diretiva.

Por outro lado, você tem outras alternativas legais:

  • Controle de cache: sem cache : será validado novamente com o servidor antes de veicular a página do cache.
  • Controle de cache: deve-revalidar , o navegador deve validá-lo novamente com o servidor antes de veiculá-lo do cache.
  • Controle de Cahce: no-store , não armazene em cache e não armazene a página na pasta de cache

Lembre-se de que você ainda está à mercê do navegador e cada um tem seu próprio jeito (infelizmente) de lidar com essas diretivas.

Fonte: Diretivas de controle de cache desmistificadas

E você também deve ler isto onde explica que o mecanismo básico de expiração mudou: ao usar o Expires e max-age, a diretiva max-age substituirá o cabeçalho de expiração.

Fonte: 14.9.3 Modificações do Mecanismo Básico de Expiração

    
por 29.05.2012 / 15:51