values htaccess expires example equiv control content cache cabeceras age http caching http-headers

htaccess - ¿Tiene sentido tener max-age y s-maxage en el encabezado HTTP Cache-Control?



cache-control nginx (2)

De las definiciones de campos del encabezado HTTP :

14.9.3 Modificaciones del mecanismo de caducidad básico

...

s-maxage

Si una respuesta incluye una directiva s-maxage, entonces para un caché compartido (pero no para un caché privado), la edad máxima especificada por esta directiva anula la edad máxima especificada por la directiva de edad máxima o el encabezado Expires.

...

Tenga en cuenta que " anula ". Por lo tanto, solo tendría sentido si tiene la intención de especificar una edad máxima diferente para las memorias caché compartidas en comparación con max-age , que sería utilizada por los usuarios finales.

En su ejemplo particular, son iguales, por lo que especificar s-maxage es simplemente innecesario.

Teniendo en cuenta que max-age se aplica a todas las memorias caché, y s-maxage solo se aplica a las memorias caché compartidas (proxy y caché de puerta de enlace) ....

¿Tiene sentido utilizar ambas directivas en una página pública y no expirable?

Pseudocódigo del controlador:

w = Response(); w.setPublic(); w.setMaxAge("1 year"); w.setShareMaxAge("1 year"); return w;


El punto clave a tener en cuenta en la definición es compartir caché

De definiciones de campos de encabezado HTTP

14.9.3 Modificaciones del mecanismo de caducidad básico

...

s-maxage

Si una respuesta incluye una directiva s-maxage, entonces para un caché compartido (pero no para un caché privado ), la edad máxima especificada por esta directiva anula la edad máxima especificada por la directiva de edad máxima o el encabezado Expires.

...

Significa que los caché / proxy inversos como barniz, frente a la nube, nube nubosa pueden tener una antigüedad de caché diferente a la caché del navegador. Yo personalmente preferiría que el valor de s-maxage sea ​​más alto que maxage

En HTTP 1.1, una vez que la respuesta se almacena en caché, no puede ponerse en contacto con el navegador para invalidar el caché, pero puede indicarlo a las CDN.