Auditoría de Google Chrome sobre el almacenamiento en caché

Si ejecuto una auditoría en mis sitios con Google Chrome, recibo este mensaje en elAproveche el almacenamiento en caché del navegador sección:

A los siguientes recursos les falta una caducidad de caché. Los navegadores no pueden almacenar en caché los recursos que no especifican una caducidad:

A continuación se incluye una lista de todas las imágenes. Recibo un aviso similar enAproveche el almacenamiento en caché de proxy:

Considere agregar un encabezado "Cache-Control: public" a los siguientes recursos:

Además de las imágenes, también recibo un aviso sobre los archivos HTML, CSS y JavaScript:

Los siguientes recursos son explícitamente no almacenables en caché. Considere hacerlos almacenables en caché si es posible:

Es divertido porque he trabajado duro para almacenar en caché todo el contenido estático (excepto las imágenes, donde acabo de dejar la configuración predeterminada de Apache). Firefox de hecho almacena todos estos elementos en caché.

¿Hay algo que debería mejorar en mis encabezados HTTP?

Aquí está el conjunto completo de encabezados de algunos elementos cargados después de eliminar el caché del navegador. Las imágenes usan configuraciones predeterminadas que realmente no revisé antes, el resto debería guardarse durante tres horas. Puedo configurar encabezados con ambos.htaccess yPHP.

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
Actualizar

Probé la sugerencia de Jumby y configuré el vencimiento de mi CSS en 1 año:

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

Sin embargo, Chrome aún afirma "explícitamente no almacenable en caché".

Respuestas a la pregunta(3)

Su respuesta a la pregunta