Rate Limiting

Rate Limiting begrenzt die Anzahl an Anfragen, die ein Client innerhalb eines bestimmten Zeitraums an einen Server oder eine API stellen darf, um Missbrauch und Überlastung zu verhindern.

Kurz erklärt

Rate Limiting legt fest, wie oft ein Client - identifiziert etwa über IP-Adresse oder API-Schlüssel - innerhalb eines Zeitfensters Anfragen stellen darf, beispielsweise maximal 100 Anfragen pro Minute. Wird dieses Limit überschritten, weist der Server weitere Anfragen ab, häufig mit dem HTTP-Statuscode 429 (“Too Many Requests”), bis das Zeitfenster zurückgesetzt wird.

Beispiel

Eine öffentliche API erlaubt kostenlosen Nutzern 1.000 Anfragen pro Tag. Überschreitet ein Client dieses Kontingent, erhält er für weitere Anfragen eine Fehlermeldung, bis das Tageslimit am nächsten Tag zurückgesetzt wird - zahlende Nutzer erhalten in der Regel höhere Limits.

Warum ist das relevant?

Rate Limiting schützt Systeme sowohl vor böswilligem Missbrauch, etwa automatisierten Brute-Force-Angriffen auf Logins, als auch vor unbeabsichtigter Überlastung durch fehlerhaft programmierte Clients, die in kurzer Zeit ungewöhnlich viele Anfragen senden. Für API-Anbieter ist es zudem ein zentrales Werkzeug, um verschiedene Nutzungsstufen (etwa kostenlose und kostenpflichtige Tarife) technisch durchzusetzen.

Häufige Missverständnisse

Rate Limiting ist kein vollständiger Schutz vor DDoS-Angriffen - bei sehr großangelegten, verteilten Angriffen über viele verschiedene IP-Adressen stößt eine reine Anfragebegrenzung pro Client schnell an ihre Grenzen und muss durch weitere Maßnahmen wie ein CDN oder eine Web Application Firewall ergänzt werden. Auch bedeutet ein erreichtes Limit nicht zwingend böswilliges Verhalten - häufig sind schlecht implementierte, zu häufig abfragende Clients die Ursache.

Weiterführende Inhalte