Cómo Spring MVC diseña el almacenamiento en caché
Set
boolean requireSession = false: si la solicitud actual debe tener una sesión. Si esta propiedad es verdadera pero la solicitud actual no abre una sesión, se lanzará HttpSessionRequiredException
boolean useExpiresHeader; = verdadero: si el uso del protocolo HTTP1.0 caduca en el encabezado de respuesta. 0 Encabezado de respuesta caducado del protocolo: si es verdadero, se agregará "Expires:" al encabezado de respuesta; debe usarse con cacheSeconds;
boolean useCacheControlHeader = true: si se usa la respuesta de control de caché de el encabezado del protocolo HTTP 1.1, si es verdadero, se agregará al encabezado de respuesta; debe usarse con cacheSeconds;
booleano useCacheControlNoStore = true: si se usa HTTP 1.1. se establecerán los datos del encabezado:
Pragma: no-cache // encabezado de respuesta HTTP 1.0 sin caché
Expires: 1L // HTTP 1.0 useExpiresHeader=true
Tiempo de caducidad de la caché:
1.0
Cache-Control: no-cache // Cuando HTTP 1.1 useCacheControlHeader=true
Cache-Control: no-store / / Cuando esto está configurado Cuando se usa para evitar el almacenamiento en caché de Firefox useCacheControlNoStore=true
2. Cuando cacheSeconds>0, se establecerán los siguientes datos del encabezado de respuesta:
Caduca: System.currentTimeMillis( ) + cacheSeconds * 1000L // Cuando HTTP 1.0, useExpiresHeader=true
Cache-Control : max-age=cacheSeconds // Cuando HTTP 1.1, useCacheControlHeader=true
3. cacheSeconds< 0 no establece nada, es decir, se conserva la última configuración de caché.
La siguiente es una breve introducción a la función de los encabezados de respuesta anteriores. El control de caché está más allá del contenido de este libro:
Encabezado de respuesta de control de caché HTTP1.0
Pragma: no -cache: indica que el cliente no puede almacenar en caché y se debe forzar al servidor a obtener los datos más recientes;
Caduca: encabezado de respuesta HTTP1.0 Encabezado de respuesta HTTP1.0: copia de caché local caducada Si el cliente descubre que el archivo de caché no ha caducado, no envíe la solicitud, la fecha y hora HTTP deben ser la hora media de Greenwich (GMT), como "Expires: miércoles, 14 de marzo de 2012 09: 38:32 GMT";
Encabezado de respuesta HTTP1.0 Encabezado de respuesta HTTP1.0: Copia de caché local caducada. Si el cliente descubre que el archivo almacenado en caché no ha caducado, no envíe la solicitud. 1 encabezado de respuesta de Cache Control
Cache-Control: no-cache obligará al cliente a obtener la última versión del servidor para cada solicitud sin verificarlo a través de una copia de caché local;
Cache -Control: no-store obligará al cliente a no guardar la copia solicitada. Esta configuración es para evitar que Firefox almacene en caché
Cache-Control: max-age=[segundos] El tiempo máximo de caché del archivo. copia del cliente, similar a Similar a HTTP 1.0 Expires, excepto que se calcula en función del intervalo de tiempo relativo de la solicitud en lugar del tiempo absoluto.
También existen algunos mecanismos de control de caché relacionados, como Última modificación (verificación de la hora de la última modificación, es decir, la última solicitud del cliente se realizó después de la última hora de modificación del servidor, lo que indica que los datos del servidor no cambios ocurridos Devuelve el código de estado 304) y ETag (cuando los datos no han cambiado, los datos no se vuelven a descargar y se devuelve 304).
Esta clase abstracta la heredan AbstractController y WebContentInterceptor de forma predeterminada.