Rate Limiting Nedir?

İngilizce: Rate Limiting

Rate limiting, kullanıcı, IP veya token başına belirli sürede izin verilen istek sayısını sınırlayarak API'leri kötüye kullanım ve yük artışından korur.

Rate Limiting Nedir?

Rate limiting, bir kullanıcı, IP adresi, API anahtarı veya token için belirli zaman aralığında kabul edilecek istek sayısını sınırlar. Amaç hem sistem kaynaklarını korumak hem de brute force, scraping, spam ve hatalı entegrasyon gibi davranışların etkisini azaltmaktır.

Bir API dakikada 100 istek sınırı koyduğunda 101. istek genellikle 429 Too Many Requests yanıtı alır. İyi tasarlanmış yanıtlar Retry-After gibi başlıklarla istemcinin ne zaman tekrar deneyeceğini de bildirir.

Yaygın Algoritmalar

  • Fixed window: Belirli pencere içinde sayar; basittir ama pencere sınırında patlama yaratabilir.
  • Sliding window: Zaman aralığını daha yumuşak hesaplar.
  • Token bucket: Belirli hızda token üretir; kısa patlamalara kontrollü izin verir.
  • Leaky bucket: İstekleri sabit hızda işler; ani yükleri düzleştirir.

İş Dünyasında Kullanımı

Rate limiting ödeme API’leri, giriş formları, arama endpoint’leri, dosya yükleme ve herkese açık entegrasyonlarda önemlidir. Sınır çok düşükse meşru müşteriler engellenir; çok yüksekse altyapı maliyeti ve kötüye kullanım riski artar. Bu yüzden limitler kullanıcı tipi, plan, endpoint maliyeti ve güvenlik riskiyle birlikte ayarlanmalıdır.

API Gateway çoğu zaman rate limiting’i merkezi uygular; API tasarımında kota, hata mesajı ve istemci retry davranışı birlikte düşünülmelidir.