Confissão : os sites que mantenho têm regras diferentes para o Controle de cache, com base principalmente na configuração padrão do servidor, seguida de recomendações dos plug-ins Page Speed e Y-Slow Firefox e da exibição Recursos de rede no Speed Tracer do Google . O Controle de cache é definido como privado / público, dependendo do que eles dizem fazer, os cabeçalhos do ETag / Last-Modified só serão modificados se o Y-Slow sugerir que algo está errado e a Vary-Accept-Encoding parecer necessária ao compactar manualmente os arquivos do Amazon CloudFront.
Ao ler o material sobre as diferentes opções e o que elas fazem, parece haver informações conflitantes, regras para proxies quebrados e configurações de culto à carga . Qualquer informação oficial fornecida pelas ferramentas de análise mencionadas acima é bastante inacessível, pois lida com cada tópico individualmente e não como uma estratégia unificada (portanto, não há referência cruzada de técnicas).
Por exemplo, parece não fazer sentido que as ferramentas de análise de velocidade classifiquem um site com ETag da mesma forma que um site sem eles, se elas tiverem o objetivo de ajudar no cache.
Quais são as regras rígidas e rápidas para uma estratégia independente de controle de cache da plataforma?
EDITAR:
A ligação através de artigo de Jeff Atwood explica Caching em soberba profundidade.
Para o registro, porém, aqui estão as regras rígidas e rápidas:
Se o arquivo for compactado usando GZIP, etc - use "cache-control: private" como proxy pode retornar a versão compactada para um cliente que não o suporta (o cache do navegador mantém os arquivos marcados dessa maneira). Lembre-se também de incluir um "Vary: Accept-Encoding" para dizer que é compressível.
Use Last-Modified em conjunto com o ETag - o uso de correias e chaves fornece os dois validadores, enquanto o ETag é baseado no conteúdo do arquivo em vez do tempo de modificação sozinho, o uso de ambos abrange todas as bases. NOTA: O PageTest da AOL tem uma abordagem de carta branca contra ETags por algum motivo. Se você estiver usando o Apache em mais de um servidor para hospedar o mesmo conteúdo, remova o inode declarado implicitamente do ETags, excluindo-o da diretiva FileETag (ou seja, "Tamanho do arquivo FileETag MTime"), a menos que você esteja realmente usando o mesmo sistema de arquivos ativo.
Use "cache-control: public" sempre que puder - isso significa que os servidores proxy (e o cache do navegador) retornarão seu conteúdo, mesmo que o restante da página precise de autenticação HTTP, etc.