Estou tentando fazer com que os navegadores armazenem em cache os recursos por meio de HTTPS . Estou usando o método impressão digital MD5 para permitir o armazenamento em cache a longo prazo e tenho esta parte funcionando bem.
O que não funciona é definir os cabeçalhos Cache-Control no Apache.
Minha configuração para ambos regular e SSL vhost contém:
ExpiresActive On
ExpiresByType text/css "now plus 1 year"
A solicitação
HTTP para /test.css produz cabeçalhos:
Cache-Control: max-age=31536000
Content-Type: text/css
Date: Wed, 15 May 2013 10:33:01 GMT
Etag: "7e572-19-4dcbdc8c04529"
Expires: Thu, 15 May 2014 10:33:01 GMT
Last-Modified: Wed, 15 May 2013 08:46:21 GMT
Server: Apache/2.2.15 (Oracle)
Vary: Accept-Encoding,User-Agent
Mas a solicitação HTTPS para o mesmo arquivo produz cabeçalhos:
Cache-Control: private, must-revalidate, no-cache, no-store
Content-Type: text/css
Date: Wed, 15 May 2013 10:33:58 GMT
Etag: "7e572-19-4dcbdc8c04529"
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Last-Modified: Wed, 15 May 2013 08:46:21 GMT
Server: Apache/2.2.15 (Oracle)
Vary: Accept-Encoding,User-Agent
BTW, Adicionando isso logo após o ExpiresByType :
Header unset Expires
Header unset Cache-Control
remove esses cabeçalhos do HTTP, mas não da solicitação HTTPS.
Além disso, verifiquei que qualquer outro cabeçalho que eu configure é passado, mas não cabeçalhos relacionados a cache como Cache-Control ou Expira - eles são sobrescritos em algum lugar.
Esse comportamento normal do Apache ou algum patch do Oracle ou Red Hat é voltado para a segurança?
Isso pode ser desativado de alguma forma?
Informações do sistema:
OS: Oracle Linux 6.4 (RHEL 6.4 based)
Apache: 2.2.15 (from rpm)