¿Las respuestas HTTP 304 no modificadas deben contener encabezados de control de caché?
Traté de entender esto y busqué SO para preguntas similares, pero todavía no entiendo al 100% cómo se supone que funciona esto.
Obtengo esta respuesta en una solicitud de un recurso de imagen:
Response Headers
Server Apache-Coyote/1.1
Date Mon, 19 Oct 2009 09:04:04 GMT
Expires Mon, 19 Oct 2009 09:06:05 GMT
Cache-Control public, max-age=120
Etag image_a70703fb393a60b6da346c112715a0abd54a3236
Content-Disposition inline;filename="binary-216-420"
Content-Type image/jpg;charset=UTF-8
Content-Length 4719
El comportamiento deseado es que el cliente debe almacenar esto en caché durante 120 segundos y luego solicitarlo nuevamente al servidor. Dentro de los 120 segundos, no se envía ninguna solicitud al servidor.
Luego, después de 120 segundos, se envía una solicitud y se recibe una respuesta 304:
Response Headers
Server Apache-Coyote/1.1
Date Mon, 19 Oct 2009 09:06:13 GMT
Request Headers
Host localhost:8080
User-Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language en-us,no;q=0.8,sq;q=0.7,en;q=0.5,sv;q=0.3,nn;q=0.2
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer http://localhost:8080/cms/site/0/en/home
Cookie JSESSIONID=768ABBE1A3BFABE3B535900233330650; versionsCssDisplayState=block; iceInfo=iceOn:false,activePortletKey:,icePagePanelX:1722,icePagePanelY:3
If-None-Match image_a70703fb393a60b6da346c112715a0abd54a3236
Hasta ahora, todo bien. Pero luego, en la siguiente solicitud (en 120 segundos), habría pensado que el recurso debería almacenarse en la memoria caché durante 120 segundos nuevos. Lo que veo en el navegador (Firefox), por otro lado, es que desde este punto siempre solicita el recurso y recibe la respuesta 304.
¿Se supone que debo adjuntar los encabezados de control de caché en la respuesta 304? Por lo que puedo leer en la especificación, parece que las configuraciones de control de caché deberían omitirse, y que la caché debería almacenarlas en 120 segundos nuevos automáticamente.