Qual é a sintaxe correta do Apache para o controle apropriado do cache de expiração?

1

Algumas perguntas sobre o uso absoluto e ideal do cache de cache dinâmico e estático.

Atualmente, meu htaccess está configurado como abaixo, e tenho a sensação de que eu não estou realmente usando da maneira correta ... Qualquer uma das suas sugestões de melhoria eu vejo como respostas! Muito apreciado!

Question1: alguma sugestão sobre o que eu deveria mudar, para tornar o cache mais correto dentro dos dois níveis (#### dynamic / #### static)

Pergunta 2: o que essas tags IF fazem: <IfModule mod_headers.c> ... </IfModule>
 É aconselhável manter ou não? Sem isso parece funcionar também. Existem vantagens de velocidade usando isso?

Pergunta 3: Devo usar os dois ExpiresDefault M7200 e Header set Cache-Control "max-age=7200" ou um deles fará o mesmo?

<IfModule mod_headers.c>

    ExpiresActive On
    Header unset ETag
    FileETag None
    Header unset Pragma
    ExpiresDefault M14515200

    ##### DYNAMIC PAGES
    <FilesMatch "\.(htm|php)$">
        ExpiresDefault M7200
        Header set Cache-Control "max-age=7200"
    </FilesMatch>

    ##### STATIC FILES
    <FilesMatch "\.(ico|jpg|png|gif|svg|swf|css|js|fon|ttf|eot|xml|pdf|flv)$">
        ExpiresDefault M14515200
        Header set Cache-Control "max-age=14515200"
    </FilesMatch>

</IfModule>
    
por Sam 16.02.2011 / 16:29

1 resposta

2

Para responder à pergunta 2 primeiro, o < IfModule > o wrapper está lá para que sua configuração ainda funcione (embora sem os bits que definem cabeçalhos) em uma instância do Apache que não inclua mod_headers. Sem o wrapper, uma instância do Apache sem mod_headers falharia na inicialização.

Para a pergunta 3, os servidores da Web definem os cabeçalhos Expires e Cache-Control porque o histórico de cabeçalhos de cache é longo e confuso, e cobrir ambos é a melhor opção para conseguir que o máximo de usuários finais respeite sua vida útil de cache . 99% do tempo, qualquer um será suficiente (neste caso você pode usar max-age, e empurrar a carga de trabalho da CPU para determinar o que é de 7200 minutos a partir de agora para o navegador do usuário ao invés de seu servidor). p>

Para a pergunta 1, se as suas páginas .htm e .php são realmente dinâmicas (o conteúdo depende de quem é o usuário ou o que ele está fazendo), então você não deve permitir que ele seja armazenado em cache. Os arquivos .xml geralmente são gerados pelo seu código e, se forem, eles provavelmente devem ser incluídos no conteúdo dinâmico em vez de estático. E não há problema em dar aos seus arquivos "estáticos" uma vida útil tão longa, se você tiver tomado providências para garantir que sejam realmente estáticos e nunca poderá alterar o conteúdo de um arquivo, mantendo o mesmo nome de arquivo. Em particular, se você alterar seus arquivos JavaScript ou CSS, os usuários verão resultados inesperados, dependendo do que eles armazenaram em cache e do que não possuem.

    
por 16.02.2011 / 17:41