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.