Erklärt
Rate-Limiting ist die Methode, mit der Server sich vor Missbrauch schützen. Jede öffentlich zugängliche API und Website begrenzt die Anzahl der Anfragen, die ein einzelner Client in einem Zeitfenster senden kann -- `100 requests per IP per minute`, `5000 requests per API key per hour`, `30 logins per account per day`. Wenn ein Client das Limit überschreitet, gibt der Server eine 429-Too-Many-Requests-Antwort zurück (oder verlangsamt in manchen Fällen stillschweigend die Antworten, stellt die Anfrage in die Warteschlange oder beginnt mit der Ausgabe von CAPTCHAs).
Für Scraping- und Datenerfassungs-Workloads ist Rate-Limiting der operative Boden, der bestimmt, wie schnell Sie vorgehen können. Die naive Lösung -- weniger Anfragen senden -- begrenzt Ihren Durchsatz. Die eigentliche Lösung besteht darin, Anfragen über viele Identifikatoren (IPs, Konten, Sitzungs-IDs) zu verteilen, sodass kein einzelner Identifikator sein Limit überschreitet. Das ist der einzige Grund, warum Residential-Proxys als Produktkategorie existieren.
Serverseitige Rate-Limiting-Algorithmen gibt es in verschiedenen Formen. Token Bucket lässt den Client mit einer gleichmäßigen Rate bis zu einem Maximum Tokens ansammeln und erlaubt Bursts bis zur Maximalgröße. Sliding Window zählt Anfragen in einem gleitenden Zeitfenster und glättet das Limit. Fixed Window setzt den Zähler an Uhrzeitgrenzen zurück (pro Minute, pro Stunde). Jede Form hat unterschiedliche Auswirkungen darauf, wie Scraper Anfragen takten sollten.
So funktioniert es
Bei jeder eingehenden Anfrage identifiziert der Server den Client (anhand von IP, API-Schlüssel, Konto-ID oder Sitzungstoken) und prüft einen Zähler für diesen Identifikator im aktuellen Zeitfenster. Wenn der Zähler unter dem Limit liegt, wird die Anfrage durchgelassen und der Zähler erhöht. Wenn der Zähler über dem Limit liegt, gibt der Server 429 mit einem `Retry-After`-Header zurück, der angibt, wie lange gewartet werden soll.
Die meisten großen APIs verwenden eine Kombination von Identifikatoren: Dieselbe IP und dasselbe Konto treffen auf unterschiedliche Zähler mit unterschiedlichen Limits. Cloudflares Rate-Limit-Regeln können beispielsweise ein Limit nach IP, URL-Pfad, Sitzung oder einer beliebigen Kombination davon festlegen. Einige fortgeschrittene Systeme verwenden Leaky-Bucket- oder Sliding-Window-Counter-Varianten für eine gleichmäßigere Durchsetzung.