Estoy tratando de tener un comportamiento básico con respecto a mi estrategia de almacenamiento en caché: los archivos deben almacenarse en caché y revalidarse con el servidor cada vez. Así que me gustaría que Apache enviara un 304 de regreso.
Aquí está el diálogo que ocurre para cada actualización del navegador:
Status Code:200 OK
Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie: ...
Host:...
If-Modified-Since:Tue, 14 Oct 2014 15:10:37 GMT
If-None-Match:"1461-505636af08fcd-gzip"
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Response Headers
Accept-Ranges:bytes
Cache-Control:No-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:1412
Content-Type:text/html
Date:Tue, 14 Oct 2014 16:58:05 GMT
ETag:"1461-505636af08fcd-gzip"
Keep-Alive:timeout=5, max=99
Last-Modified:Tue, 14 Oct 2014 15:10:37 GMT
Server:Apache/2.4.6 (Ubuntu)
Vary:Accept-Encoding
(Esto es de Chrome Devtools, con Deshabilitar caché desmarcado)
Puede ver que la respuesta contiene Cache-Control: Encabezado sin caché, y que el encabezado If-modified-since coincide con Last-modified. El ETag también coincide.
¿No debería Apache enviar un 304 en ese caso?
EDITAR
Deshabilitar ETags en apache con
Header unset ETag
hace que el comportamiento de almacenamiento en caché sea más predecible ...
Cache-Control:max-age=0
deshabilitó el caché, así que ves laCache-Control:No-cache
respuesta.