No momento não usamos cabeçalhos Expire, eu recomendaria isso, mas forçar nossa grande equipe de desenvolvimento / negócio a mudar suas práticas e renomear arquivos estáticos a cada nova versão não será fácil obter arquivos atualizados.
Corri o YSlow e obtemos um F para o Etags, "Existem 24 componentes com ETags mal configurados". O httpd.conf do Apache não possui Etags configurados manualmente, portanto, parece que estamos usando as configurações padrão. (Tamanho do MTime do FileETag INode). Quando visito nosso site e, em seguida, clico em atualizar, vejo que o Etags parece estar funcionando muito bem:
Um exemplo de imagem:
If-Modified-Desde: Sáb, 23 de julho de 2011 02:05:28 GMT
Se-Nenhum-Coincidir: "21246-eb05-4a8b30415ea00"
Cache-Control: max-age = 0
HTTP / 1.1 304 não modificado
Data: Ter, 06 de setembro de 2011 20:59:29 GMT
Servidor: IBM_HTTP_Server
Conexão: Keep-Alive
Manter vivo: tempo limite = 6
Etag: "21246-eb05-4a8b30415ea00"
1) Eu vejo um "304 Not Modified" para arquivos de imagem, js, html, etc em nossa landing page. Por que o Yslow diz que temos alguns Etags mal configurados quando todos eles estão configurados com a mesma configuração padrão do Apache? O relatório do YSlow menciona esses mesmos tipos de arquivos.
2) Nós temos um balanceador de carga F5 entre vários servidores web Apache, usamos bits pegajosos, e é por isso que eu acho que o inode Apache Etag não está incomodando muito a gente. Mas se um usuário voltar amanhã e acessar outro servidor, perderemos a opção de cache correta porque o código será diferente? Devemos mudar o httpd.conf e remover a variável Etode do inode de todos os servidores web?
Desculpe pelo comprimento! Obrigado