Auditoria do Google Chrome em cache

Se eu executar uma auditoria em meus sites com o Google Chrome, recebo esta mensagem noAproveite o cache do navegador seção:

Os seguintes recursos estão faltando uma expiração de cache. Os recursos que não especificam uma expiração não podem ser armazenados em cache pelos navegadores:

A seguir, é apresentada uma lista de todas as imagens. Recebo um aviso semelhante emAproveite o cache de proxy:

Considere adicionar um cabeçalho "Cache-Control: public" aos seguintes recursos:

Além das imagens, também recebo um aviso sobre arquivos HTML, CSS e JavaScript:

Os seguintes recursos são explicitamente não armazenáveis em cache. Considere torná-los armazenáveis em cache, se possível:

É engraçado porque trabalhei duro para armazenar em cache todo o conteúdo estático (exceto as imagens, onde deixei as configurações padrão do Apache). O Firefox realmente armazena todos esses itens no cache.

Há algo que eu deva melhorar nos meus cabeçalhos HTTP?

Aqui está o conjunto completo de cabeçalhos de alguns itens carregados após a remoção do cache do navegador. As imagens usam configurações padrão que eu realmente não havia verificado antes; o restante deve ser armazenado em cache por três horas. Eu posso definir cabeçalhos com ambos.htaccess ePHP.

PNG
HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:46:14 GMT
Server: Apache
Last-Modified: Thu, 18 Mar 2010 21:40:54 GMT
Etag: "c48024-230-4821a15d6c580"
Accept-Ranges: bytes
Content-Length: 560
Keep-Alive: timeout=4
Connection: Keep-Alive
Content-Type: image/png
HTML
HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:46:13 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:46:13 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Wed, 24 Mar 2010 20:30:36 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-15
CSS
HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:48:21 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:48:21 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/css
Javascript
HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:48:21 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:48:21 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/x-javascript
Atualizar

Testei a sugestão de Jumby e configurei o prazo de expiração do meu CSS para 1 ano:

Cache-Control:max-age=31536000, s-maxage=31536000, must-revalidate, proxy-revalidate
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:4198
Content-Type:text/css
Date:Mon, 02 Aug 2010 20:48:56 GMT
Expires:Tue, 02 Aug 2011 20:48:56 GMT
Keep-Alive:timeout=5, max=99
Last-Modified:Thu, 18 Mar 2010 20:40:12 GMT
Server:Apache/2.2.14 (Win32) PHP/5.3.1
Vary:Accept-Encoding
X-Powered-By:PHP/5.3.1

No entanto, o Chrome ainda reivindica "explicitamente não armazenável em cache"