Guía de Integración de Caché de Respuestas y CDN

Optimiza el rendimiento de Smart Money API con estrategias de caché inteligentes. Aprende sobre encabezados HTTP de caché, validación ETag, integración con CDN y patrones de caché en el cliente para reducir la latencia y los costos de ancho de banda.

Publicado el 21 de marzo de 2026 16 min de lectura Rendimiento

Resumen de Caché

Los endpoints de Smart Money API proporcionan datos del mercado de criptomonedas que cambian con diferentes frecuencias. Algunos datos (direcciones de ballenas, tasas de financiación) se actualizan cada pocos segundos, mientras que otros (análisis histórico, contenido educativo) permanecen estáticos durante horas. El caché inteligente mejora drásticamente el rendimiento y reduce los costos.

Smart Money API implementa una estrategia de caché de tres niveles:

  • Caché en el Edge de la CDN — Distribución global de contenido con invalidación automática de caché
  • Caché HTTP del Navegador — Caché en el cliente usando encabezados HTTP estándar
  • Caché de Aplicación — Caché en memoria para conjuntos de datos accedidos frecuentemente

Perspectiva de Rendimiento: Las respuestas en caché se sirven 50-100 veces más rápido que las solicitudes nuevas a la API y ahorran ancho de banda significativamente. Una integración con caché adecuada puede reducir la transferencia de datos en un 70-85%.

Cada respuesta de Smart Money API incluye directivas de caché que indican a los clientes y CDNs cuánto tiempo los datos permanecen válidos. Entender estas directivas e implementarlas correctamente es crucial para un rendimiento óptimo.

Fundamentos de Caché

El caché HTTP opera basado en encabezados de respuesta que indican si el contenido puede ser almacenado en caché y por cuánto tiempo.

Encabezado Cache-Control

El mecanismo principal para controlar el comportamiento del caché. Cada respuesta de Smart Money API incluye un encabezado Cache-Control que especifica:

  • max-age — Duración en segundos que la respuesta permanece válida
  • public/private — Si las cachés intermedias pueden almacenarla
  • must-revalidate — Si se debe verificar la frescura antes de servir
  • no-store — No almacenar en caché datos sensibles

Ejemplos de Encabezados de Caché

Diferentes endpoints tienen diferentes requisitos de caché:

Encabezados de Respuesta
// Datos de direcciones de ballenas (se actualiza cada 5 minutos)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Tasas de financiación en tiempo real (se actualiza cada segundo)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Datos históricos (no cambian)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"

Duración de Caché por Tipo de Endpoint

Tipo de Dato Duración de Caché Caso de Uso
Financiación en Tiempo Real 1-5 segundos Operaciones en vivo, tamaño de posición
Movimientos de ballenas 5 minutos Confirmación de señales, alertas
OHLCV diario 1 hora Análisis técnico, gráficos
Análisis histórico 24 horas Backtesting, investigación
Contenido estático 7 días Documentación de API, guías, configuración
Obtén tu clave API en 30 segundos

¿Listo para construir? Obtén una clave API gratuita (200 llamadas/día, sin tarjeta) y comienza a obtener datos en vivo de ballenas, financiamiento y cadena.

Obtén tu clave API →

Encabezados de caché HTTP

Las respuestas de Smart Money API incluyen varios encabezados relacionados con caché que trabajan juntos para maximizar el rendimiento manteniendo la frescura de los datos.

Cache-Control: El encabezado principal

Controla el comportamiento de caché para navegadores y cachés intermedios:

Directivas de Cache-Control
// Datos públicos, caché por 5 minutos
Cache-Control: public, max-age=300
// Datos privados, caché solo en navegador
Cache-Control: private, max-age=3600
// Contenido inmutable, caché permanente
Cache-Control: public, max-age=31536000, immutable
// Siempre revalidar antes de servir
Cache-Control: public, max-age=0, must-revalidate
// No almacenar en caché datos sensibles
Cache-Control: private, no-store, no-cache

Encabezado Expires (heredado)

Para clientes antiguos, Smart Money también proporciona el encabezado Expires (HTTP/1.0):

Encabezado Expires
// Tiempo de expiración absoluto
Expires: Wed, 22 Mar 2026 14:30:00 GMT
// Cache-Control max-age tiene prioridad en HTTP/1.1

Encabezado Last-Modified

Indica cuándo se actualizó el contenido por última vez, permitiendo solicitudes condicionales:

Uso de Last-Modified
// La respuesta incluye Last-Modified
Last-Modified: Wed, 21 Mar 2026 10:15:30 GMT
// El cliente revalida con If-Modified-Since
If-Modified-Since: Wed, 21 Mar 2026 10:15:30 GMT
// Si no hay cambios, el servidor responde 304 Not Modified
HTTP/1.1 304 Not Modified

Encabezado Vary

Indica a las cachés qué encabezados de solicitud afectan la respuesta (autenticación, parámetros):

Encabezado Vary
// La respuesta varía por autenticación y símbolos
Vary: Authorization, X-Symbols
// Las cachés almacenan versiones separadas para diferentes valores

ETag y solicitudes condicionales

Las ETags (Etiquetas de Entidad) proporcionan una forma eficiente de validar contenido en caché sin descargar el cuerpo completo de la respuesta.

Cómo funcionan las ETags

  1. Solicitud inicial — El cliente solicita datos, el servidor responde con ETag
  2. Almacenamiento en caché — El cliente almacena la respuesta con ETag
  3. Solicitud posterior — El cliente envía el encabezado If-None-Match con el ETag en caché
  4. Validación — Si los datos no han cambiado, el servidor devuelve 304 No Modificado
  5. Ancho de Banda Ahorrado — No se envía cuerpo de respuesta, gran ahorro de ancho de banda

Implementación de ETag

Solicitud y Respuesta Inicial
// Primera solicitud
GET /v1/whales/btc HTTP/1.1
// La respuesta incluye ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
Revalidación Condicional
// Después de que la caché expire, envía If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Si no ha cambiado, el servidor responde 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// ¡No se envía cuerpo! Ancho de banda ahorrado

Fuerza del ETag

Los ETags pueden ser fuertes o débiles:

Tipo Formato Caso de Uso
ETag Fuerte "8a3b9c2d" Idéntico byte por byte, útil para validación
ETag Débil W/"8a3b9c2d" Equivalentes semánticamente, para cambios visuales

Directivas de Control de Caché

Comprender las directivas Cache-Control permite construir estrategias de caché óptimas para tu aplicación.

Referencia de Directivas

Directiva Significado Ejemplo
max-age Segundos que la respuesta permanece fresca max-age=300
public La caché puede almacenar y compartir public
private Caché solo para el destinatario private
must-revalidate Revalidar cuando esté obsoleto must-revalidate
no-cache Debe revalidarse antes de usar no-cache
no-store No almacenar en caché no-store
immutable Nunca cambia, almacenar en caché para siempre immutable
s-maxage Duración de la caché en CDN s-maxage=3600

Patrones Prácticos de Cache-Control

Patrones Comunes
// Patrón 1: Caché del navegador, CDN por 1 hora
Cache-Control: public, max-age=300, s-maxage=3600
// Patrón 2: Datos por usuario, sin caché de proxy
Cache-Control: private, max-age=1800
// Patrón 3: Siempre fresco, siempre verificar
Cache-Control: public, no-cache, must-revalidate
// Patrón 4: Recurso versionado inmutable
Cache-Control: public, max-age=31536000, immutable

Integración con CDN

Smart Money API entrega respuestas a través de la red global CDN de Cloudflare, almacenando automáticamente respuestas en ubicaciones de borde en todo el mundo para una latencia mínima.

Cómo Funciona Smart Money CDN

  1. Solicitud del Usuario — La solicitud llega a la ubicación de borde más cercana de Cloudflare
  2. Verificación de Caché — El borde verifica si la respuesta está en caché y es fresca
  3. Acierto de Caché — Si está en caché, se sirve inmediatamente con <10ms de latencia
  4. Fallo de Caché — Si no está en caché, se obtiene del servidor de origen
  5. Almacenar y Servir — Almacenar la respuesta en caché y entregarla al usuario

Configuración de Clave de Caché

Cloudflare utiliza claves de caché para identificar respuestas almacenadas. Por defecto:

  • La ruta de solicitud y los parámetros de consulta están incluidos
  • La mayoría de los encabezados se ignoran (para maximizar aciertos de caché)
  • Los encabezados de autorización NO están incluidos (sin fugas de cuenta)
  • Los encabezados personalizados se pueden incluir mediante el encabezado Vary

Purgado de CDN

Smart Money purga automáticamente la caché CDN cuando se actualizan los datos:

Purgado Manual de Caché
// Purga una URL específica de la CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'

Medición del Rendimiento de la CDN

Verifica los encabezados de respuesta para ver si la solicitud fue servida desde la caché:

Encabezados de Respuesta
// Acierto de caché desde el borde de la CDN
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // segundos desde que se almacenó en caché
// Fallo de caché, obtenido del servidor de origen
CF-Cache-Status: MISS
Age: 0

Caché del Lado del Cliente

Implementa caché en tu aplicación para reducir aún más las llamadas API y mejorar la capacidad de respuesta.

Implementación de Caché en el Navegador

Caché en JavaScript
// Crear almacenamiento en caché
const cache = new Map();
async function fetchWithCache(url) {
// Consultar caché primero
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Obtener desde la API
const response = await fetch(url);
const data = await response.json();
// Analizar duración de caché desde los encabezados
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Almacenar en caché
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}

Caché con Service Worker

Para soporte offline y estrategias avanzadas de caché, utiliza Service Workers:

Service Worker
// Almacenar respuestas de la API con Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
// Primero red, luego caché como respaldo
event.respondWith(
fetch(event.request)
.then(response => {
// Actualizar caché con respuesta reciente
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});

Estrategias de Cache Busting

A veces necesitas forzar a los clientes a obtener datos frescos. Utiliza estas técnicas:

Parámetro de Versión

Añade un parámetro de versión para invalidar cachés cuando los datos cambien:

URLs Versionadas
// Incluir versión de datos o timestamp
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Cuando los datos se actualizan, incrementa la versión
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Nueva URL = nueva entrada en caché

Forzar Revalidación

Anula la caché con Cache-Control: no-cache cuando necesites datos frescos:

Forzar Datos Frescos
// JavaScript: Forzar solicitud fresca
fetch(url, {
cache: 'no-cache', // Revalidar siempre
headers: {
'Cache-Control': 'max-age=0'
}
});

Monitoreo del Rendimiento de la Caché

Controla las tasas de acierto y mejoras de rendimiento para validar tu estrategia de caché.

Métricas de Caché a Monitorear

  • Tasa de Acierto — Porcentaje de solicitudes servidas desde caché (objetivo: >70%)
  • Tiempo de Respuesta — Latencia promedio (en caché: <50ms, sin caché: 100-300ms)
  • Ancho de Banda Ahorrado — Reducción en transferencia de datos
  • Carga del Origen — Reducción de solicitudes en el servidor de origen

Análisis de Encabezados de Caché

Script de Análisis de Caché
// Analizar encabezados de caché de respuesta
async function analyzeCache(url) {
const response = await fetch(url);
return {
cacheControl: response.headers
.get('cache-control'),
etag: response.headers.get('etag'),
age: response.headers.get('age'),
cfStatus: response.headers
.get('cf-cache-status'),
contentLength:
response.headers.get('content-length')
};
}

Mejores Prácticas de Caché

1. Respetar Encabezados de Respuesta

Respeta siempre los encabezados Cache-Control de Smart Money API. No almacenes en caché contenido marcado como no-store o no-cache.

2. Implementar Solicitudes Condicionales

Envía encabezados If-None-Match (ETag) e If-Modified-Since al revalidar contenido en caché. Ahorra ancho de banda con respuestas 304.

3. Almacenar en Caché Según el Tipo de Datos

  • Datos en tiempo real (tasas de financiamiento): caché máximo de 1-5 segundos
  • Señales en vivo (movimiento de ballenas): caché de 5-30 segundos
  • Datos por hora (OHLCV): caché de 1 hora
  • Datos históricos: caché de 24 horas
  • Contenido estático: caché de 7 días

4. Monitorear la Efectividad de la Caché

Controla tasas de acierto y mejoras en latencia. Ajusta TTLs según requisitos de frescura de datos y rendimiento de caché.

5. Usar Encabezados Vary con Cuidado

Los encabezados Vary reducen aciertos de caché al crear entradas separadas. Úsalos solo cuando sea necesario para diferentes niveles de autenticación o parámetros.

6. Almacenar en Caché en Múltiples Niveles

Implementa caché en CDN, navegador y niveles de aplicación. Cada capa intercepta solicitudes antes de llegar al origen.

Optimiza el Rendimiento de tu API

La infraestructura de caché de Smart Money API garantiza respuestas en menos de 100ms a escala global. Implementa estrategias inteligentes para maximizar rendimiento y minimizar costos.

Comparar Planes
Todos los planes incluyen caché completa en CDN. Los niveles superiores ofrecen control de caché y APIs de purga.

Recursos Relacionados

Comienza gratis — 200 llamadas/día, sin tarjeta

Obtén datos en vivo de flujo de ballenas, financiamiento, interés abierto y on-chain de 3 exchanges desde una sola API. Nivel gratuito, sin tarjeta, actualiza cuando quieras.

Comienza gratis →
Prueba la consola de API en vivo → (no se necesita cuenta)