Todos los productos
Search
Centro de documentos

CDN:Configure CDN cache expiration time

Última actualización: Sep 10, 2026

Las reglas de expiración de la caché controlan cuánto tiempo se almacenan los recursos en la caché de los puntos de presencia (POP) de CDN. Esto le permite equilibrar la actualización del contenido, el rendimiento de acceso y los costos de recuperación desde el origen. Este tema describe cómo funcionan las reglas de caché, cómo configurarlas y comprobarlas, y cómo solucionar problemas de almacenamiento en caché. También incluye prácticas recomendadas para entornos de producción.

Cómo funciona

Cuando una solicitud llega a un punto de presencia (POP) de CDN, el sistema decide si entrega una copia almacenada en la caché o si recupera el contenido más reciente del servidor de origen. A continuación se evalúan los siguientes pasos por orden de prioridad. Un número menor indica una prioridad más alta.

  1. Directivas no-cache del origen: CDN no almacena un recurso en la caché si el servidor de origen responde con Pragma: no-cache, Cache-Control: no-cache, Cache-Control: no-store o Cache-Control: max-age=0. Para forzar el almacenamiento en caché de estos recursos, seleccione Ignore Origin No-Cache Header al configurar la regla de expiración de la caché.

  2. Reglas de caché configuradas en la consola: Las reglas configuradas en la consola de CDN tienen prioridad, salvo que el servidor de origen envíe explícitamente una directiva no-cache como se describe en el paso 1. Cuando varias reglas de la consola coinciden con una solicitud, prevalece la que tiene mayor peso. Si el peso es igual, se resuelve según el orden de creación. Una vez que una solicitud coincide con una regla de caché, no se evalúa ninguna otra.

  3. Encabezados de respuesta del origen: CDN respeta los encabezados de respuesta HTTP del servidor de origen si la solicitud no coincide con ninguna regla de la consola de CDN, o si la regla coincidente tiene habilitada la opción Honor Origin TTL. La prioridad de los encabezados, de mayor a menor, es la siguiente: Cache-Control > Expires > Last-Modified > ETag.

  4. Política predeterminada sin caché: Si una solicitud no coincide con ninguna regla de caché en la consola de CDN y el servidor de origen no devuelve encabezados de respuesta de caché como Cache-Control, CDN aplica una política sin caché.

  5. CDN DCDN aplica políticas de caché únicamente a las solicitudes cuyo servidor de origen devuelve un código de estado 200, 203, 206, 300, 301, 308 o 410. Para configurar el tiempo de expiración de códigos de estado como 404, utilice la página Cache Settings > Status Code TTL.

La siguiente tabla describe la lógica de prioridad cuando varias reglas de caché de la consola coinciden con una solicitud:

Escenario

Lógica de prioridad

Ejemplo

Pesos distintos

Prevalece la regla con el peso más alto (de 1 a 99).

La regla A (directorio /image/, peso 50) y la regla B (extensión de archivo .jpg, peso 90) coinciden con image/a.jpg. La regla B entra en vigor porque tiene un peso mayor.

Mismo peso

Prevalece la regla creada primero.

Usted configura una regla de directorio (/static/) y una regla de extensión de archivo (.js) para un nombre de dominio, ambas con un peso de 60. Si la regla de directorio se creó antes que la de extensión de archivo, una solicitud para /static/app.js coincide con la regla de directorio.

La siguiente tabla describe cómo se procesa cada encabezado de respuesta del origen:

Encabezado de respuesta

Procesamiento en CDN

Notas y ejemplos

Cache-Control

Utiliza primero s-maxage (duración de la caché de CDN) y después max-age.

Ejemplo: s-maxage=86400, max-age=3600

Expires

Especifica el tiempo de expiración. Este encabezado solo se utiliza si no está presente el encabezado Cache-Control.

Ejemplo: Expires: Wed, 21 Oct 2025 07:28:00 GMT

Last-Modified

El encabezado Last-Modified es una marca de tiempo que indica cuándo se modificó por última vez el recurso. La duración de la caché se calcula así: (hora actual - Last-Modified) × 0.1. La duración calculada se limita a un mínimo de 10 segundos y un máximo de 3600 segundos.

Ejemplo: Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT

ETag

Un ETag es un identificador único que genera el servidor para una versión específica de un recurso. Por lo general, es un hash o un número de versión. De forma predeterminada, un recurso con un ETag se almacena en la caché durante 10 segundos.

Ejemplo: ETag: "abc123"

Lógica de coincidencia de reglas de caché

Las reglas de expiración de la caché de CDN admiten dos tipos de reglas con comportamientos de coincidencia distintos:

  • Directory: Utiliza coincidencia por prefijo de ruta. Por ejemplo, al configurar /static/ se incluyen todos los recursos dentro de ese directorio (como /static/image/1.jpg y /static/css/style.css). Al configurar / se incluyen todas las rutas. La ruta del directorio debe comenzar con una barra diagonal (/). Cada regla admite un solo directorio.

  • File Extension: Utiliza una coincidencia exacta con la extensión. Introduzca las extensiones sin puntos y separe varias extensiones con comas (por ejemplo, jpg,css,js). Las extensiones solo admiten caracteres alfanuméricos y no hay restricciones sobre tipos específicos. Se pueden configurar los siguientes tipos:

    • Extensiones comunes de recursos estáticos: jpg, png, gif, css, js, html

    • Extensiones de archivos de fuentes: ttf, otf, woff, woff2, eot

    • Extensiones de páginas dinámicas: php, aspx, jsp

    • Cualquier otra extensión alfanumérica

Tenga en cuenta lo siguiente sobre la coincidencia de reglas de caché:

  • Cuando varias reglas de caché coinciden con la misma solicitud (por ejemplo, una regla de directorio y una de extensión de archivo), prevalece la que tiene el Weight más alto. Si los pesos son iguales, se resuelve según el orden de creación (gana la regla anterior). Para obtener más información, consulte Cómo funciona.

  • Si asocia una condición de regla (configurada en Rule Engine) con una regla de caché, varias condiciones utilizan lógica AND. La solicitud debe cumplir todas las condiciones para que haya coincidencia.

  • Si establece una regla general sin caché para todas las extensiones dinámicas (como aspx), compruebe que no afecte a los recursos estáticos que desea almacenar en la caché. Para almacenar archivos de fuentes en la caché, agregue una regla específica con extensiones como ttf,otf,woff,woff2,eot.

Procedimiento

Nota

El tipo de negocio que seleccione al crear un nombre de dominio acelerado (como Image and Small File, Large File Download u On-demand Video/Audio Streaming) no define duraciones de caché fijas para extensiones o rutas específicas. El comportamiento real de la caché depende de las reglas que configure en la consola. Después de crear el nombre de dominio, configure las reglas de caché según sus tipos de recursos y la frecuencia de actualización.

Consola (recomendado)

  1. En la consola de Alibaba Cloud CDN, vaya a la página Domain Names y haga clic en Manage junto al nombre de dominio de destino.

  2. En la página Cache > Cache Expiration, haga clic en Create Rule para configurar una regla de caché. En la siguiente tabla se describen los parámetros.

Parámetro

Descripción

Valor predeterminado o de ejemplo

Type

Especifique el alcance de la regla por Directory o File Extension. Directory: establece una regla de caché uniforme para todos los recursos dentro de una ruta. File Extension: establece una regla de caché uniforme para archivos de un tipo específico.

Directory, File Extension

Object

Introduzca un valor según el tipo seleccionado. Directory: debe comenzar con una barra diagonal (/); por ejemplo, /static/. Una sola barra diagonal (/) coincide con todas las rutas. Solo puede agregar un directorio a la vez. File Extension: introduzca una o más extensiones de archivo separadas por comas; por ejemplo, jpg,png,css. Las entradas distinguen entre mayúsculas y minúsculas, y no admiten el carácter de tubería ni otros símbolos.

/static/, jpg,png,css

Expire In

La duración de la caché para los recursos en los POP. La duración máxima es de tres años.

Recursos estáticos con actualizaciones poco frecuentes (como imágenes e instaladores): establezca una duración de un mes o más. Recursos estáticos con actualizaciones frecuentes (como archivos JS y CSS): establezca una duración más corta, de 1 a 7 días. Contenido dinámico (como páginas PHP y JSP): establezca la duración en 0 segundos (sin caché).

De 0 segundos a 3 años

Honor Origin TTL

Está deshabilitada de forma predeterminada. Si se habilita, la política de caché del servidor de origen tiene prioridad y anula esta regla.

Off

Ignore Origin No-Cache Header

Si se habilita, CDN ignora las siguientes directivas no-cache del servidor de origen: Cache-Control: no-store, no-cache o max-age=0, y Pragma: no-cache. Los recursos se almacenan en la caché según la regla de la consola.

Off

Follow POP Cache Policy

Si se habilita, CDN devuelve su política de caché efectiva al cliente en el encabezado de respuesta, como max-age=3600.

Off

Force Revalidation

Esta configuración solo surte efecto cuando el tiempo de expiración se establece en 0 segundos. Deshabilitada (valor predeterminado, equivalente a la política de caché no-store): el POP no almacena el archivo en la caché y cada solicitud debe reenviarse al servidor de origen para recuperar el contenido. Habilitada (equivalente a la política de caché no-cache): el POP almacena el archivo en la caché, pero cada solicitud debe revalidarse con el servidor de origen mediante el mecanismo 304. Resulta útil para escenarios que requieren validación en tiempo real y también necesitan reducir la presión de ancho de banda en el servidor de origen.

Off

Weight

La prioridad de la regla. Valores válidos: de 1 a 99. Un valor más alto indica una prioridad mayor.

Recomendación: establezca un peso alto para rutas o extensiones de archivo específicas, y un peso bajo para el directorio raíz (/) para lograr un control detallado.

De 1 a 99

Rule Condition

Permite refinar aún más el alcance de la regla según parámetros de solicitud como encabezados y parámetros de URL. No se utiliza de forma predeterminada. Para configurar condiciones, utilice Rule Engine. Cuando se hace referencia a condiciones de regla, estas se evalúan según la prioridad de las condiciones asociadas, no según el orden en que se configuró la regla de caché.

Do not use

Para obtener detalles sobre cómo cada tipo de regla coincide con una solicitud, consulte Lógica de coincidencia de reglas de caché.

API

Llame a la operación de API BatchSetCdnDomainConfig para configurar varios nombres de dominio en lotes. Para obtener más información sobre cómo configurar parámetros para otras funciones, consulte Domain name configuration functions.

Importante

Las reglas de caché nuevas o modificadas solo se aplican a los recursos que se almacenan en la caché después del cambio. Los recursos que ya están en la caché continúan utilizando la política de caché anterior hasta que expiren.

Aplicar cambios de reglas de inmediato

Para aplicar reglas nuevas en toda la red de inmediato, debe borrar manualmente la caché existente. Si modifica una regla, purgue la caché existente mediante la función Purge and prefetch resources. Si agrega una regla nueva, precargue el recurso mediante la función prefetch resource.

Comprobación

Una vez completada la configuración, utilice el comando curl o las herramientas de desarrollo del navegador para inspeccionar los encabezados de respuesta HTTP de un recurso y comprobar que la caché funciona como se espera. Para obtener detalles sobre cuándo entra en vigor un cambio de regla, consulte Aplicar cambios de reglas de inmediato.

Método 1: Usar el comando curl

Ejecute el siguiente comando en su terminal para probar la configuración.

curl -I "https://your.domain.com/path/to/file.jpg"

En los encabezados de respuesta, revise X-Cache: HIT significa que la solicitud se entregó desde la caché de CDN, y MISS indica un fallo de caché que desencadena una recuperación desde el origen. Para obtener detalles sobre cada encabezado, consulte Interpretar los encabezados de respuesta clave.

Método 2: Usar las herramientas de desarrollo del navegador

Abra las herramientas de desarrollo de su navegador (F12) y vaya a la pestaña Network. Acceda a la URL del recurso, seleccione la solicitud y compruebe el encabezado X-Cache en Response Headers para determinar si el recurso se entregó desde la caché de CDN.

Interpretar los encabezados de respuesta clave

X-Cache

Indica si la solicitud encontró coincidencia en la caché de CDN.

  • HIT: La solicitud encontró coincidencia en la caché.

  • MISS: La solicitud no encontró coincidencia en la caché y el recurso se recuperó del servidor de origen.

Cache-Control

Después de habilitar Follow POP Cache Policy, CDN devuelve al cliente la política de caché efectiva del POP, como max-age=3600.

X-Swift-SaveTime

  • La hora en que el recurso ingresó por primera vez al POP de CDN en la capa L1 a la que accede directamente el cliente.

  • El valor utiliza el formato de hora GMT. Ejemplo: Sat, 19 Apr 2025 08:58:31 GMT.

Ali-Swift-Global-Savetime

  • La hora en que el recurso ingresó por primera vez a un POP de CDN. Según la arquitectura de caché del sitio, puede tratarse de un POP L2 u otra capa de caché.

  • El valor es una marca de tiempo Unix. Por ejemplo, 1745053111 indica 2025-04-19 16:58:31.

X-Swift-CacheTime

La duración de caché configurada del recurso en el POP de CDN, en segundos. Este valor es un límite superior, no una garantía. Ali-Swift-Global-Savetime es una marca de tiempo Unix y X-Swift-SaveTime es un valor de hora GMT.

  • X-Swift-CacheTime = Ali-Swift-Global-Savetime + la expiración de caché configurada en CDN - X-Swift-SaveTime.

  • Es posible que X-Swift-CacheTime no sea exactamente igual a la expiración de caché configurada. Pueden presentarse las siguientes situaciones:

    • Es igual a la expiración de caché configurada, por ejemplo, 3600 segundos.

    • Es ligeramente menor que la expiración de caché configurada. Por ejemplo, la expiración configurada es de 300 segundos, pero X-Swift-CacheTime es de 295 segundos. Esto puede ocurrir porque un POP L1 experimenta alta latencia al recuperar el recurso de un POP L2, o porque los relojes de los POP L1 y L2 no están sincronizados.

    • Es negativo porque se modificó la expiración de la caché y, cuando el cliente accede al recurso, la caché del POP L1 ya expiró mientras que la del POP L2 no. Por ejemplo, la expiración cambió de 3600 segundos a 300 segundos. Si el cliente vuelve a acceder al recurso 600 segundos después de su primer acceso, la respuesta contiene X-Swift-CacheTime: -300. Purgue la caché para que el nuevo tiempo de expiración entre en vigor.

  • Si un recurso se accede con poca frecuencia en un POP, otros recursos con accesos más frecuentes podrían desplazarlo antes de que expire. Por lo tanto, su duración real en la caché puede ser menor que el valor configurado.

Prácticas recomendadas

  • Utilizar nombres de archivo con versiones (recomendado): Cuando actualice un recurso estático como style.css, utilice un nombre de archivo nuevo con una versión o un hash, como style-v2.css o style-a1b2c3d.css, y actualice la referencia en su HTML. Este método garantiza que los usuarios reciban el contenido más reciente de inmediato sin necesidad de purgar manualmente la caché de CDN. Es la forma recomendada de actualizar contenido almacenado en caché.

  • Aprovechar la caché del navegador: Habilite Follow POP Cache Policy para reducir las solicitudes repetidas a CDN, mejorar la velocidad de carga y ahorrar tráfico de CDN.

  • Evitar duraciones de caché demasiado cortas: Una duración de caché corta provoca que CDN ejecute recuperaciones frecuentes desde el origen. Esto anula los beneficios de la aceleración y aumenta el tráfico y los costos de su servidor de origen.

  • Tener precaución con duraciones de caché largas: Una duración de caché larga puede impedir que los clientes reciban actualizaciones de contenido oportunas. Para el contenido que requiere actualizaciones frecuentes, asegúrese de purgar la caché o utilizar nombres de archivo con versiones.

  • Sector de videojuegos y escenarios de archivos pequeños: Para recursos de archivos pequeños en el sector de videojuegos (como archivos de configuración y paquetes de recursos) que se actualizan con poca frecuencia (por ejemplo, semanal o quincenalmente), establezca el tiempo de expiración de la caché en 15 días o ajústelo al ciclo real de actualización del recurso. Esto equilibra la velocidad de actualización y el rendimiento de la aceleración. Una duración de caché demasiado corta genera recuperaciones frecuentes desde el origen y reduce los beneficios de la aceleración; una demasiado larga podría entregar contenido obsoleto a los jugadores. (Recomendado) Utilice la función purge and prefetch para actualizar proactivamente la caché cuando se modifique el contenido.

  • robots.txt y sitemap.xml: Estos archivos afectan directamente el rastreo de los motores de búsqueda. Configure su duración de caché por separado para evitar que coincidan con una regla de extensión amplia que los almacene en la caché por demasiado tiempo, lo cual retrasaría las actualizaciones. (Recomendado) Para dirigirse únicamente a estos dos archivos, seleccione Directory como tipo, introduzca la ruta específica del archivo (como /robots.txt) en el campo Object y luego establezca un peso alto para anular las reglas de extensión amplias. Si prefiere configurar por extensión de archivo, establezca una duración de caché de 1 hora a 1 día para las extensiones txt,xml. Una regla de extensión se aplica a todos los recursos con esas extensiones, no solo a robots.txt y sitemap.xml. Para sitemaps que se actualizan con frecuencia, establezca la duración de la caché en no más de 1 hora.

Solución de problemas

Para saber cómo solucionar problemas cuando la caché no surte efecto, hay fallos de caché, la tasa de aciertos es baja o el contenido no se actualiza, consulte Troubleshoot cache issues.

Apéndice: Mecanismos de control de caché HTTP

Esta sección proporciona contexto sobre el protocolo. Para conocer el comportamiento de caché correspondiente en los POP, consulte Cómo funciona. El protocolo HTTP utiliza tres tipos de encabezados para el control de la caché:

  1. Validación del tiempo de expiración

    Cuando un cliente solicita un recurso a un servidor, ambas partes acuerdan un tiempo de expiración para el recurso. Antes de ese momento, la copia almacenada en la caché se considera válida. Después, la copia almacenada en la caché deja de ser válida.

    En HTTP, se suelen utilizar los siguientes encabezados para controlar la expiración de la caché:

    Encabezado

    Versión del protocolo

    Descripción

    Ejemplo

    Tipo

    Pragma

    HTTP/1.0

    Indica si el contenido debe almacenarse en la caché. Su valor suele ser no-cache, lo que significa que el archivo no debe almacenarse en la caché. Se usa frecuentemente para mantener la compatibilidad con servidores que solo admiten el protocolo HTTP/1.0.

    Pragma: no-cache

    Solicitud/Respuesta

    Expires

    HTTP/1.0

    El encabezado de respuesta Expires especifica la fecha y hora en que el contenido almacenado en la caché queda obsoleto. Si se utiliza una fecha no válida, como 0, significa que el recurso ya expiró.

    Expires: Wed, 21 Oct 2022 07:28:00 GMT

    Respuesta

    Cache-Control

    HTTP/1.1

    El encabezado de respuesta Cache-Control ofrece un control flexible de la caché mediante diversas directivas. Es el encabezado principal que utilizan los clientes modernos, como los navegadores, para este fin.

    Los siguientes tres ejemplos indican que el archivo no debe almacenarse en la caché: Cache-Control: no-cache; Cache-Control: no-store; Cache-Control: max-age=0. Ejemplo de un periodo de validez de caché de 1 hora: Cache-Control: max-age=3600.

    Solicitud/Respuesta

  2. Validación de etiquetas de recursos

    El servidor incluye una etiqueta de recurso (como un ETag) en su respuesta inicial. Cuando el cliente vuelve a solicitar el mismo recurso, envía esta etiqueta de vuelta al servidor para su validación. Si el recurso no ha cambiado, el servidor responde con un código de estado HTTP 304, lo que permite al cliente usar su copia almacenada en la caché. Si el recurso cambió, el servidor envía el contenido nuevo.

    En HTTP, se suelen utilizar los siguientes encabezados para controlar las versiones de la caché:

    Encabezado

    Versión del protocolo

    Descripción

    Ejemplo

    Tipo

    Last-Modified

    HTTP/1.0

    Indica la hora de la última modificación del recurso.

    Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT

    Respuesta

    ETag

    HTTP/1.1

    Proporciona un identificador único para una versión específica de un recurso. La comparación de ETags permite determinar si un recurso cambió. Si no cambió, el servidor de origen no necesita enviar una respuesta completa.

    ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

    Respuesta

  3. Negociación de contenido

    El software de almacenamiento en caché utiliza una palabra clave para indexar los objetos almacenados en disco. En HTTP/1.0, se usa la URL del recurso como palabra clave. Sin embargo, pueden existir distintas representaciones de un recurso en la misma URL. Para distinguirlas, se requiere más información del cliente, como los encabezados Accept-Language y Accept-Charset. Para admitir la negociación de contenido, HTTP/1.1 introdujo el encabezado Vary en el mensaje de respuesta. Este encabezado enumera qué encabezados de solicitud son obligatorios para la negociación de contenido.

    La negociación de contenido suele utilizar el encabezado HTTP Vary para diferenciar entre distintas copias almacenadas en la caché. Esto permite que diferentes clientes reciban copias distintas al solicitar el mismo recurso:

Encabezado

Versión del protocolo

Descripción

Ejemplo

Tipo

Vary

HTTP/1.1

Ejemplos comunes: el servidor especifica Vary: Accept-Encoding para informar al receptor (por ejemplo, un POP de CDN) que debe almacenar en la caché dos versiones del recurso: comprimida y sin comprimir. Cuando un cliente solicita el mismo recurso a CDN, los navegadores antiguos pueden recibir el recurso sin comprimir para evitar problemas de compatibilidad, mientras que los navegadores más recientes reciben el recurso comprimido para reducir el tráfico de transferencia de datos. El servidor especifica Vary: User-Agent para identificar el tipo de navegador que envía la solicitud. Esto informa al receptor (por ejemplo, un POP de CDN) que debe almacenar en la caché distintas versiones del recurso según el tipo de navegador.

Vary: Accept-Encoding; Vary: Accept-Encoding,User-Agent

Respuesta