Como Funciona un CDN - Tecnologia para Acelerar la Entrega de Contenido

13 min de lectura | 2025.12.16

Que es un CDN

Un CDN (Content Delivery Network) es un mecanismo que entrega contenido desde el servidor mas cercano al usuario a traves de una red de servidores distribuidos en todo el mundo.

Por que es necesario: Si el servidor de origen esta en Japon, los usuarios en Estados Unidos tienen que esperar el tiempo que tarda la ida y vuelta de datos a traves del Pacifico. Con un CDN, pueden obtener el contenido desde un servidor edge en Estados Unidos, reduciendo significativamente la latencia.

Configuracion Basica de un CDN

flowchart TB
    subgraph Tokyo["Region de Tokio"]
        U1["Usuario (Tokio)"]
        E1["Servidor Edge (Tokio)"]
    end

    subgraph NY["Region de Nueva York"]
        U2["Usuario (NY)"]
        E2["Servidor Edge (NY)"]
    end

    subgraph Origin["Origen"]
        O["Servidor de Origen (US)"]
    end

    U1 --> E1
    E1 -.->|En caso de cache miss| O
    U2 --> E2
    E2 -.->|En caso de cache miss| O
  • Servidor Edge: Servidores de cache distribuidos en todo el mundo
  • Servidor de Origen: Servidor que contiene el contenido original
  • PoP (Point of Presence): Centro de datos donde se instalan los servidores edge

Flujo de Operacion del CDN

Cache Hit

sequenceDiagram
    participant U as Usuario
    participant E as CDN Edge
    U->>E: Solicitud
    Note over E: Cache disponible
    E->>U: Respuesta inmediata

Cache Miss

sequenceDiagram
    participant U as Usuario
    participant E as CDN Edge
    participant O as Servidor de Origen
    U->>E: 1. Solicitud
    Note over E: Sin cache
    E->>O: 2. Obtener
    O->>E: 3. Devolver contenido
    Note over E: 4. Guardar en cache
    E->>U: 5. Respuesta

Control de Cache

Header Cache-Control

# Cache por 1 hora
Cache-Control: public, max-age=3600

# No almacenar en cache
Cache-Control: no-store

# Requiere revalidacion
Cache-Control: no-cache

# Cache solo en CDN
Cache-Control: s-maxage=86400

Clave de Cache

Incluso con la misma URL, la cache puede separarse por los siguientes elementos.

ElementoEjemplo
Parametro de consulta?version=2
HeaderAccept-Encoding, Accept-Language
CookieEstado de login
DispositivoMovil/Escritorio

Invalidacion de Cache (Purge)

Metodo para eliminar la cache antigua cuando se actualiza el contenido.

Purge Inmediato

# Ejemplo de API de Cloudflare
curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone_id}/purge_cache" \
  -H "Authorization: Bearer {token}" \
  -d '{"files":["https://example.com/image.jpg"]}'

Cache Busting

Incluir version o hash en el nombre del archivo.

<!-- Numero de version -->
<script src="/app.js?v=1.2.3"></script>

<!-- Hash de contenido -->
<script src="/app.a1b2c3d4.js"></script>

Funciones Principales del CDN

Proteccion DDoS

flowchart TB
    A["Trafico de ataque"] --> B["CDN Edge<br/>(Absorcion y filtrado)"]
    B --> C["Solo trafico normal"]
    C --> D["Servidor de Origen"]

Terminacion SSL/TLS

El CDN procesa las conexiones HTTPS y optimiza la conexion al origen.

flowchart LR
    U["Usuario"] -->|HTTPS| CDN["CDN"]
    CDN -->|HTTP/Optimizado| O["Origen"]

Optimizacion de Imagenes

flowchart TD
    A["Original: image.jpg (2MB)"] --> B["Conversion automatica en CDN"]
    B --> C["WebP: image.webp (400KB)"]
    B --> D["AVIF: image.avif (300KB)"]
    B --> E["Redimensionado: Reducido al tamano necesario"]

Edge Computing

Ejecuta codigo en el edge del CDN, procesando cerca del usuario.

// Ejemplo de Cloudflare Workers
export default {
  async fetch(request) {
    const url = new URL(request.url);

    // Prueba A/B
    const variant = Math.random() > 0.5 ? 'A' : 'B';
    url.pathname = `/variant-${variant}${url.pathname}`;

    return fetch(url);
  }
}

Principales Proveedores de CDN

ProveedorCaracteristicas
CloudflarePlan gratuito disponible, funciones de seguridad completas
AWS CloudFrontIntegracion con servicios AWS, Lambda@Edge
FastlyPurge en tiempo real, configuracion VCL
AkamaiMayor escala, orientado a empresas
Vercel Edge NetworkOptimizado para Next.js, experiencia de desarrollador

Cuando Usar un CDN

Casos Adecuados

  • Activos estaticos (imagenes, CSS, JavaScript)
  • Streaming de video
  • Sitios web con despliegue global
  • Respuesta a picos de trafico
  • Fortalecimiento de seguridad

Casos que Requieren Precaucion

  • Contenido que se actualiza frecuentemente
  • Contenido personalizado
  • APIs que requieren tiempo real

Resumen

El CDN es una infraestructura importante que mejora el rendimiento y la seguridad de los sitios web. Disenando estrategias de cache apropiadas y aprovechando el CDN segun las caracteristicas del contenido, puede mejorar significativamente la experiencia del usuario.

← Volver a la lista