wake-up-neo.net

Quais são as regras rígidas e rápidas para o Controle de Cache?

Confissão : os sites que mantenho têm regras diferentes para o Controle de cache, principalmente com base na configuração padrão do servidor, seguida das recomendações do site Page Speed & Y-Slow Plug-ins do Firefox e a exibição Recursos de rede no Google Speed ​​Tracer do Google. O Controle de cache é definido como privado/público, dependendo do que eles dizem fazer, os cabeçalhos de 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 eles fazem, parece haver informações conflitantes, regras para proxies quebrados e configurações cargo cult . 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 pretendem ajudar no cache.

Quais são as regras rígidas e rápidas para uma estratégia independente de controle de cache da plataforma?

EDIT:

A link through Artigo de Jeff Atwood explica o cache em profundidade incrível.

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 um proxy pode retornar a versão compactada para um cliente que não suportá-lo (o cache do navegador conterá 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 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, usando os dois cobre todas as bases. NOTA: 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 de ETags, excluindo-o da diretiva FileETag (ou seja, "FileETag MTime Size"), 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 a página precisa de autenticação HTTP, etc.

15
Metalshark

Primeiro, não se livre do ETag como o Yahoo diz, a menos que você esteja usando um farm/cluster de servidores. Contanto que o mesmo arquivo sempre retorne o mesmo ETag quando não for alterado, será uma diretiva muito útil.

Quanto a outros cabeçalhos, as práticas recomendadas do Yahoo sugerem definir um cabeçalho Expires para um futuro distante para arquivos estáticos, use Cache-Control para dinâmico conteúdo. No entanto, Cache-control é perfeitamente adequado para conteúdo estático (praticamente nenhuma diferença entre eles).

Quando você altera arquivos estáticos em cache, é necessário alterar o nome do arquivo ou adicionar um parâmetro exclusivo ao final, por exemplo example.com/styles.css?v=2. É preferível alterar o nome do arquivo real, conforme observado nos comentários abaixo.

Aliás, você pode editar as regras YSlow ao seu gosto, para remover a regra Etag e adicionar seu próprio domínio como uma CDN. Este artigo também é uma boa leitura: Os problemas do Yahoo não são os seus problemas

8
DisgruntledGoat

Altere os cabeçalhos de solicitação de seus recursos para usar o cache Para a maioria das pessoas, o caminho para o cache estável é adicionar algum código a um arquivo chamado .htaccess no seu host/servidor da web.

Isso significa ir ao gerenciador de arquivos (ou onde quer que você adicione ou faça upload de arquivos) no seu host.

O arquivo .htaccess controla muitas coisas importantes para o seu site. Se você não estiver familiarizado com o arquivo .htaccess, leia meu artigo sobre como trabalhar com .htaccess para saber um pouco antes de alterá-lo.

O código abaixo informa aos navegadores o que armazenar em cache e quanto tempo "lembrar" dele. Ele deve ser adicionado à parte superior do seu arquivo .htaccess.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

Salve o arquivo .htaccess e atualize sua página da web.

Fonte:
https://varvy.com/pagespeed/leverage-browser-caching.html

0
Nomib Nomib