Media CDN sirve contenido lo más cerca posible de los usuarios mediante la infraestructura de almacenamiento en caché perimetral mundial de Google para almacenar contenido en caché y reducir la carga de la infraestructura de origen.
Puedes controlar cómo se almacena en caché el contenido de cada ruta. De esta forma, puedes optimizar el comportamiento en función del tipo de contenido, los atributos de la solicitud del cliente y tus requisitos de actualización.
Almacenabilidad en caché
En las siguientes secciones se describe qué respuestas almacena en caché Media CDN y cómo mejorar la descarga de la caché.
Comportamiento predeterminado del almacenamiento en caché
De forma predeterminada, los siguientes ajustes relacionados con la caché se aplican a cada servicio de caché perimetral:
Modo de caché predeterminado de
CACHE_ALL_STATIC:- Respeta las directivas de caché de origen, como
Cache-ControloExpires, hasta un TTL máximo configurable. - Almacena en caché automáticamente los tipos de contenido multimedia estático con un TTL predeterminado de 3600 s si no hay directivas de caché de origen.
- Almacena en caché los códigos de estado HTTP 200, 204 y 206 (el almacenamiento en caché negativo no está habilitado).
- Respeta las directivas de caché de origen, como
No almacena en caché las respuestas que tienen directivas de control de caché
no-storeoprivate, o que no se pueden almacenar en caché de otro modo.
Las respuestas que no son contenido estático o que no tienen directivas de caché válidas no se almacenan en caché a menos que se configure explícitamente. Para saber cómo anular el comportamiento predeterminado, consulta la documentación sobre los modos de caché .
El comportamiento predeterminado es equivalente al siguiente cdnPolicy. Las rutas sin un cdnPolicy configurado explícitamente se comportan como si tuvieran la siguiente configuración:
cdnPolicy: cacheMode: CACHE_ALL_STATIC defaultTtl: 3600s cacheKeyPolicy: includeProtocol: false excludeHost: false excludeQueryString: false signedRequestMode: DISABLED negativeCaching: false
Respuestas que se pueden almacenar en caché
Una respuesta almacenable en caché es una respuesta HTTP que Media CDN puede almacenar y recuperar rápidamente, lo que permite que los tiempos de carga sean más rápidos. No todas las respuestas HTTP se pueden almacenar en caché.
Puedes configurar modos de caché para cada ruta y anular este comportamiento (por ejemplo, usando el modo de caché CACHE_ALL_STATIC para almacenar en caché tipos de contenido multimedia comunes), aunque el origen no defina una directiva de control de caché en la respuesta.
Las solicitudes y respuestas que cumplen los criterios definidos en respuestas no almacenables en caché tienen prioridad sobre la capacidad de almacenamiento en caché.
En la siguiente tabla se describen los requisitos para almacenar en caché respuestas HTTP concretas. Tanto las respuestas de GET como las de HEAD deben cumplir estos requisitos.
| Atributo HTTP | Requisitos |
|---|---|
| Código de estado | El código de estado de la respuesta debe ser uno de los siguientes: 200, 203, 204, 206, 300, 301, 302, 307, 308, 400, 403, 404, 405, 410, 451, 500, 501, 502, 503 o 504. |
| Métodos HTTP | GET y HEAD |
| Encabezados de solicitud | La mayoría de las directivas de solicitud de almacenamiento en caché se ignoran. Para obtener más información, consulta las directivas de control de caché. |
| Encabezados de respuesta | Contiene una directiva de almacenamiento en caché de HTTP válida, como Tiene un modo de caché que almacena ese contenido en caché o tiene un encabezado |
| Tamaño de la respuesta | Hasta 100 GiB. |
El encabezado HTTP Age se define en función de cuándo almacenó en caché Media CDN por primera vez la respuesta y, por lo general, representa los segundos transcurridos desde que se almacenó en caché el objeto en una ubicación de protección del origen. Si tu origen genera un encabezado de respuesta Age, usa el modo de caché FORCE_CACHE_ALL para evitar que se vuelvan a validar los elementos cuando Age supere el TTL de la caché.
Para obtener más información sobre cómo interpreta Media CDN las directivas de almacenamiento en caché HTTP, consulta Directivas de control de caché.
Requisitos de origen
Para permitir que Media CDN almacene en caché respuestas de origen de más de 1 MiB, un origen debe incluir lo siguiente en los encabezados de respuesta de las solicitudes GET, a menos que se especifique lo contrario:
- Un encabezado de respuesta HTTP
Last-ModifiedoETag(un validador). - Un encabezado HTTP
Dateválido. - Un encabezado
Content-Lengthválido. - El encabezado de respuesta
Content-Rangeen respuesta a una solicitudRange GET. El encabezadoContent-Rangedebe tener un valor válido con el formatobytes x-y/z(dondezes el tamaño del objeto).
El protocolo de origen predeterminado es HTTP/2. Si tus orígenes solo admiten HTTP/1.1, puedes definir el campo de protocolo explícitamente para cada origen.
Respuestas que no se pueden almacenar en caché
En la siguiente tabla se detallan los atributos de solicitud y respuesta que impiden que se almacene en caché una respuesta. Las respuestas que se pueden almacenar en caché, pero que coinciden con criterios "no almacenables en caché", no se almacenan en caché.
| Atributo HTTP | Requisito |
|---|---|
| Código de estado | Un código de estado distinto de los definidos como almacenables en caché, como HTTP 401, HTTP 412 o HTTP 505. Estos códigos de estado suelen representar problemas de cara al cliente y no el estado del origen. Almacenar en caché esas respuestas puede dar lugar a situaciones de "envenenamiento de caché", en las que se almacena en caché una respuesta "incorrecta" activada por un usuario para todos los usuarios. |
| Encabezados de solicitud | En las solicitudes con un encabezado Una directiva |
| Encabezados de respuesta | Tiene un encabezado Tiene un encabezado En el modo |
| Tamaño de la respuesta | Superior a 100 GiB. |
Estas reglas se aplican además del modo de caché configurado. En concreto, este cambio afecta a las siguientes acciones:
- Si el modo de caché
CACHE_ALL_STATICestá configurado, solo se almacenan en caché las respuestas que se consideran contenido estático o las respuestas con directivas de caché válidas en sus encabezados de respuesta. Las demás respuestas se envían tal cual a través de un proxy. - El modo de caché
FORCE_CACHE_ALLalmacena en caché todas las respuestas incondicionalmente, de acuerdo con los requisitos de no almacenamiento en caché indicados anteriormente. - El modo de caché
USE_ORIGIN_HEADERSrequiere que las respuestas definan directivas de caché válidas en sus encabezados de respuesta, además de tener un código de estado que se pueda almacenar en caché.
Notas:
- Las respuestas que no se almacenan en caché no tienen sus directivas de control de caché ni otros encabezados modificados y se envían a través de proxy tal cual.
- Las respuestas pueden tener los encabezados
Cache-ControlyExpirescontraídos en un solo campoCache-Control. Por ejemplo, una respuesta conCache-Control: publicyCache-Control: max-age=100en líneas independientes se contraería comoCache-Control: public,max-age=100. - Las respuestas que no se pueden almacenar en caché (respuestas que nunca se almacenarían en caché) no se contabilizan como
Cache Egressdesde el punto de vista de la facturación.
Usar modos de caché
Los modos de caché le permiten configurar cuándo debe respetar Media CDN las directivas de caché del origen, almacenar en caché los tipos de contenido multimedia estático y almacenar en caché todas las respuestas del origen, independientemente de las directivas definidas.
Los modos de caché se configuran a nivel de ruta y, combinados con las anulaciones de TTL, te permiten configurar el comportamiento de la caché por host, ruta, parámetros de consulta y encabezados (cualquier parámetro de solicitud que se pueda asociar).
- De forma predeterminada, Media CDN usa el
CACHE_ALL_STATICmodo de caché, que almacena automáticamente en caché los tipos de contenido multimedia estático habituales durante 1 hora (3600 segundos), al tiempo que prioriza las directivas de caché especificadas por el origen para las respuestas almacenables en caché. - Puedes aumentar o reducir el tiempo de vida de la caché aplicado a las respuestas sin que se haya definido un tiempo de vida de la caché explícito (una directiva
max-ageos-maxage) configurando el campocdnPolicy.defaultTtlen una ruta. - Para evitar que se almacenen en caché respuestas que no sean correctas durante más tiempo del previsto, los códigos de estado que no sean 2xx (es decir, que no sean correctos) no se almacenan en caché según su