Glosario

¿Qué es la limitación de velocidad?

La limitación de velocidad es una defensa del lado del servidor que limita el número de solicitudes que un único cliente (identificado por IP, cuenta o sesión) puede realizar en un intervalo de tiempo determinado. Se utiliza para proteger la infraestructura, prevenir abusos y garantizar un uso equitativo de los recursos.

Comprende cómo los sitios web y las APIs limitan a los clientes de alto volumen, los algoritmos detrás de los límites de velocidad (token bucket, ventana deslizante, ventana fija) y cómo los proxies rotativos superan los límites por IP.

Explicado

La limitación de velocidad es la forma en que los servidores se protegen del abuso. Cada API y sitio web de acceso público limita el número de solicitudes que un único cliente puede enviar en un intervalo de tiempo: `100 solicitudes por IP por minuto`, `5000 solicitudes por clave de API por hora`, `30 inicios de sesión por cuenta por día`. Cuando un cliente supera el límite, el servidor devuelve una respuesta 429 Too Many Requests (o en algunos casos simplemente ralentiza las respuestas en silencio, pone la solicitud en cola o empieza a mostrar CAPTCHAs).

Para las cargas de trabajo de scraping y recopilación de datos, la limitación de velocidad es el umbral operativo que determina la rapidez con la que puedes trabajar. La solución ingenua, enviar menos solicitudes, limita tu rendimiento. La solución real es distribuir las solicitudes entre muchos identificadores (IPs, cuentas, IDs de sesión) para que ningún identificador individual supere su límite. Esa es la razón principal por la que los proxies residenciales existen como categoría de producto.

Los algoritmos de limitación de velocidad del lado del servidor tienen varias formas. El cubo de tokens permite al cliente acumular tokens a una velocidad constante hasta un límite máximo, permitiendo ráfagas hasta ese tamaño. La ventana deslizante cuenta las solicitudes en una ventana de tiempo móvil, suavizando el límite. La ventana fija restablece el contador en los límites del reloj (por minuto, por hora). Cada uno tiene implicaciones diferentes para cómo los scrapers deben espaciar las solicitudes.

Cómo funciona

En cada solicitud entrante, el servidor identifica al cliente (por IP, clave de API, ID de cuenta o token de sesión) y comprueba un contador para ese identificador en la ventana actual. Si el contador está por debajo del límite, la solicitud pasa y el contador se incrementa. Si el contador supera el límite, el servidor devuelve 429 con una cabecera `Retry-After` que indica cuánto tiempo esperar.

La mayoría de las APIs grandes utilizan una combinación de identificadores: la misma IP y cuenta activan contadores diferentes con límites distintos. Las reglas de limitación de velocidad de Cloudflare, por ejemplo, pueden delimitar un límite por IP, por ruta de URL, por sesión o por cualquier combinación. Algunos sistemas avanzados utilizan variantes de cubo con fugas o contador de ventana deslizante para una aplicación más suave.

Tipos

Token bucket

Un cubo se llena de tokens a una velocidad constante hasta un límite máximo. Cada solicitud consume un token. Permite ráfagas hasta el tamaño del cubo, suavizadas a lo largo del tiempo. Es el algoritmo más común en la limitación de velocidad de APIs modernas.

Leaky bucket

Las solicitudes entran en una cola (cubo) que se vacía a una velocidad fija. Las solicitudes en exceso se desbordan y son rechazadas. Suaviza las ráfagas de forma más estricta que el token bucket.

Ventana fija

El contador se reinicia en los límites del reloj (cada minuto, cada hora). Sencillo de implementar, pero tiene problemas de ráfagas en los límites de ventana (un cliente puede enviar el doble del límite abarcando dos ventanas).

Ventana deslizante

El contador analiza los últimos N segundos en lugar de ventanas discretas. Aplicación más suave que la ventana fija. El registro de ventana deslizante y el contador de ventana deslizante son variantes habituales.

Limitación de velocidad adaptativa y conductual

Los límites se ajustan en función de los patrones de solicitud y la puntuación de riesgo. Utilizada por proveedores anti-bot (Cloudflare, Datadome): el mismo cliente puede tener permitidas 1000 solicitudes por minuto o solo 10, según el aspecto que tenga el tráfico.

Casos de uso habituales

Proteger las APIs públicas del abuso
Prevenir ataques de relleno de credenciales (límites de velocidad en inicio de sesión)
Gestionar el coste de infraestructura a escala
Aplicar niveles de uso justo entre clientes
Ralentizar scrapers y el abuso de contenido
Limitar las tormentas de reintentos durante interrupciones
Preguntas frecuentes

Preguntas frecuentes

Preguntas frecuentes sobre limitación de velocidad.

Distribuyendo las solicitudes entre muchas IPs. Si un objetivo limita a 60 solicitudes por IP por minuto y rotas por solicitud a través de un pool residencial de 10.000 IPs, teóricamente puedes alcanzar 600.000 solicitudes por minuto contra el objetivo sin que ninguna IP supere su límite. En la práctica, las señales conductuales también importan, pero la rotación de IP es la técnica fundamental.