Cabeçalho duplicate max-age

3

Estou usando o Apache 2.4.25 para expor vários serviços de back-end usando o proxy pass. O Apache também define os cabeçalhos de controle de cache com base no tipo MIME. A configuração atual do cache é assim:

ExpiresActive on
ExpiresDefault "now"
ExpiresByType text/html "now"
ExpiresByType image/gif "access plus 120 minutes"
ExpiresByType image/jpeg "access plus 120 minutes"
ExpiresByType image/png "access plus 120 minutes"
ExpiresByType text/css "access plus 60 minutes"
ExpiresByType text/javascript "access plus 60 minutes"
ExpiresByType application/x-javascript "access plus 60 minutes"
ExpiresByType text/xml "access plus 60 minutes"
ExpiresByType application/javascript "access plus 60 minutes"
ExpiresByType application/x-font-ttf "access plus 30 days"
ExpiresByType application/x-font-woff "access plus 30 days"
ExpiresByType application/x-font-eot "access plus 30 days"
ExpiresByType application/x-font-svg "access plus 30 days"

No entanto, um dos serviços de back-end também está configurando o cabeçalho max-age de controle de cache. Isso está fazendo com que o cabeçalho de resposta contenha duas configurações de máxima idade.

Duplicar os valores do agente max como visto no Chrome

Como o navegador reage quando apresentado com duas configurações de idade máxima com valores diferentes? Além disso, é possível verificar um cabeçalho de controle de cache existente antes de adicionar o padrão?

    
por Michael Beemer 22.02.2017 / 18:38

2 respostas

1

Use Header "set" em vez de Header "add" se você não quiser duplicatas acidentais devido ao backend enviar o mesmo cabeçalho.

    
por 24.02.2017 / 10:14
0

De acordo com os documentos mais recentes do mod_expires: link

When the Expires header is already part of the response generated by the server [...] this module does not change or add an Expires or Cache-Control header.

Portanto, uma opção é obter o back-end para definir um cabeçalho Expires além do cabeçalho Cache-Control que ele já está configurando. Por exemplo, no PHP:

$seconds = 60;
header("Expires: ". gmdate('D, d M Y H:i:s', time() + $seconds). ' GMT');
header("Cache-Control: max-age=". $seconds);
    
por 18.05.2017 / 20:02