BookinglyTech News
Redes y nube

Cloudflare añade soporte configurable de la cabecera Vary para evitar cache thrashing

El proveedor de CDN despliega en su red global el encabezado HTTP Vary dentro de Cache Rules, con controles para normalizar, pasar o ignorar cabeceras antes de calcular la clave de caché.

3 min de lecturaInfoQ0 vistas

Cloudflare ya soporta de forma nativa la cabecera HTTP Vary en toda su red global de borde. La función llega dentro de Cache Rules y está disponible para todos los planes, desde Free hasta Enterprise. La compañía la presenta como una forma de negociar representaciones distintas de un mismo recurso sin que la caché se fragmente hasta resultar inservible.

La cabecera Vary no es nueva, pero los intermediarios la han mirado siempre con recelo. Bajo la semántica HTTP, Vary indica a las cachés que el origen evaluó ciertas cabeceras de la petición antes de generar la respuesta. Si se respeta sin más, diferencias triviales entre clientes —espacios, mayúsculas o el orden de preferencia de idiomas— pueden partir un mismo recurso en docenas de variantes. Cloudflare auditó más de 120 millones de respuestas HTTP en unos 50.000 dominios principales. Casi 3.000 orígenes variaban con cuatro o más cabeceras de petición; en casos extremos, decenas de campos distintos. Eso dispara el cache thrashing: la tasa de aciertos se hunde y la carga sobre el origen sube.

Dos etapas para no elegir entre corrección y eficiencia

Para resolver ese conflicto, Cloudflare separa el proceso en dos pasos. El origen sigue diciendo qué cabeceras influyen en la respuesta. Las Cache Rules deciden cómo el borde procesa, normaliza o ignora esos valores antes de calcular la clave de variante. Los operadores pueden definir comportamiento por cabecera o una política por defecto para las no listadas.

El motor expone tres acciones: normalizar, pasar tal cual y bypass. Normalizar canonicaliza cabeceras de negociación complejas como Accept y Accept-Language en clases equivalentes, de modo que las diferencias incidentales del cliente desaparezcan. Pasar tal cual conserva las cadenas exactas, sensible a mayúsculas, algo necesario si la aplicación de origen depende de coincidencias precisas de tokens. Bypass salta por completo la caché de borde cuando la petición lleva cabeceras volátiles o de alta cardinalidad, para que esas variantes no consuman capacidad.

Un origen que sirve varios formatos puede anunciar sus dependencias con Vary: Accept, Accept-Language y Cache-Control: public, max-age=3600. Después se configura Cloudflare mediante Ruleset Engine o el panel. Alex Krivit, product manager, y Zaidoon Abd Al Hadi, ingeniero de sistemas, señalan que esta arquitectura en dos pasos resuelve limitaciones de los apaños manuales: desactivar la caché, depender de Workers, mantener claves personalizadas que anticipan cabeceras antes de ver la respuesta del origen o usar extensiones como Vary for Images.

Las claves personalizadas evalúan reglas de entrada por adelantado y se aplican aunque el origen devuelva respuestas invariables. Las reglas Vary solo se activan si el origen incluye la cabecera, así no ensanchan el espacio de claves sin necesidad.

Conviene mirar la cardinalidad antes de dejar pasar cabeceras de alta entropía. Si se permite el paso de tokens arbitrarios o identificadores de sesión, cada cadena distinta crea una entrada de borde aislada. La vida útil de la caché baja y aumentan los desalojos.

El soporte está activo en zonas Free, Pro, Business y Enterprise. Para quien opera una CDN, la decisión ahora es qué cabeceras se normalizan y cuáles se dejan pasar, porque de ello dependen la tasa de aciertos y la factura del origen.