equiv - disable cache header http
¿Cuál es la diferencia entre no-cache y no-store en Cache-control? (3)
No encuentro la diferencia práctica entre Cache-Control:no-store
y Cache-Control:no-cache
.
Que yo sepa, no-store
significa que ningún dispositivo de caché tiene permitido almacenar en caché esa respuesta. Por otro lado, no-cache
significa que no se permite que ningún dispositivo de caché sirva una respuesta en caché sin validarlo primero con la fuente. ¿Pero de qué se trata esa validación? Condicional obtener?
¿Qué sucede si una respuesta no-cache
tiene no-cache
, pero no tiene Last-Modified
o ETag
?
Saludos.
Pero de que se trata ese cheque?
Comprobación exacta de Last-Modified
o ETag
. El cliente le preguntaría al servidor si tiene una nueva versión de los datos que usan esos encabezados y si la respuesta es no, servirá datos almacenados en caché.
Actualizar
De RFC
no-cache
If the no-cache directive does not specify a field-name, then a cache MUST NOT use
the response to satisfy a subsequent request without successful revalidation with the
origin server. This allows an origin server to prevent caching even by caches that
have been configured to return stale responses to client requests.
Como se identificó, no-cache no significa que nunca haya almacenamiento en caché, sino que el agente de usuario siempre debe preguntar al servidor si está bien usar lo que almacenó en caché. Por el contrario, ninguna tienda dice que ni siquiera conserva una copia, lo que significa que no hay nada que preguntar. Si conoces la respuesta a "¿Puedo reutilizar esto?" siempre es no, se obtiene un aumento de rendimiento al omitir la validación de caché y guardar espacio en la caché para otros datos.
Aparte del rendimiento, hay una diferencia de comportamiento con el historial del navegador . La sección 13.13 HTTP 1.1 dice que "el tiempo de caducidad no se aplica a los mecanismos del historial". El encabezado no-cache describe la caducidad y, por lo tanto, no se aplica a los mecanismos del historial, como el botón Atrás. Por lo tanto, el usuario puede navegar hacia atrás a una página anterior sin caché sin contactar con el servidor.
El encabezado de no-tienda, por otro lado, evita que los datos se almacenen fuera de una sesión, en cuyo caso simplemente no está disponible para que lo use un mecanismo de historial. Sin almacenar, si el usuario finaliza su sesión navegando a otro dominio y luego regresa, la única forma en que el navegador puede saber qué mostrar es obtener la página inicial nuevamente desde el servidor.
Aquí es cómo un problema de Chromium en este tema hace la distinción:
no-cache no significa "no caché esto" (eso sería no-store). no-cache significa que no se usa para cargas normales a menos que el recurso se vuelva a validar para mantenerlo actualizado. Las navegaciones históricas no son cargas normales.
Vea el siguiente diagrama de flujo para una mejor comprensión