Esta nueva característica de Amazon CloudFront es en realidad extremadamente útil para muchos casos de uso, porque encontrar el origen funciona un poco diferente de lo que parece a primera vista y no es necesariamente un problema, al contrario; Si bien esta función ya se lanzó anteriormente, todo viene junto con el lanzamiento reciente de Amazon CloudFront - Soporte para contenido dinámico , por ejemplo, para la pregunta en cuestión:
Tiempo de vida variable (TTL) : en muchos casos, el contenido dinámico no se puede almacenar en caché o no se puede almacenar en caché durante un período de tiempo muy corto, tal vez solo unos segundos. En el pasado, el TTL mínimo de CloudFront era de 60 minutos, ya que todo el contenido se consideraba estático. El nuevo valor TTL mínimo es 0 segundos. Si configura el TTL para un origen en particular en 0, CloudFront aún almacenará en caché el contenido de ese origen. Luego, realizará una solicitud GET con un encabezado If-Modified-Since , lo que le dará al origen la oportunidad de indicar que CloudFront puede continuar usando el contenido en caché si no ha cambiado en el origen . [énfasis mío]
En otras palabras, usar un TTL de 0 significa principalmente que CloudFront delega la autoridad para el control de la caché en el origen, es decir, el servidor de origen decide si o no, y durante cuánto tiempo CloudFront almacena en caché los objetos; tenga en cuenta específicamente que una solicitud GET con un encabezado If-Modified-Since no significa necesariamente que el objeto en sí se recupera del origen, sino que el origen puede (y debe) devolver el código de estado HTTP 304 - No modificado donde corresponda :
Indica que el recurso no se ha modificado desde la última solicitud. [...] El
uso de esto ahorra ancho de banda y el reprocesamiento tanto en el servidor como en el cliente, ya que solo los datos del encabezado deben enviarse y recibirse en comparación con la totalidad de la página que el servidor procesa nuevamente y luego se envía nuevamente usando más ancho de banda del servidor y del cliente. [énfasis mío]
Consulte el excelente tutorial de almacenamiento en caché de Mark Nottingham para obtener detalles sobre la mecánica y los beneficios del control de la caché HTTP, una parte realmente importante y efectiva de la arquitectura HTTP.
Comprender cómo funcionan todas estas partes en conjunto puede ser un poco difícil, por lo que la tabla de la sección Especificación del tiempo mínimo que CloudFront almacena en caché los objetos para distribuciones de descarga dentro de Especificar cuánto tiempo permanecen los objetos en una caché de CloudFront Edge (Vencimiento del objeto) intenta resumir los efectos cuando se aplica en el contexto de CloudFront con o sin TTL = 0 específicamente.