Hız sınırlama, bir istemcinin, IP adresi veya kullanıcı hesabı ile tanımlanan, belirli bir zaman diliminde yapabileceği istek sayısını sınırlayan bir kontrol mekanizmasıdır; bu limitin üzerindeki istekleri engeller veya geciktirir. Sunucular, HTTP 429 Çok Fazla İstek ile bunu sinyaller, bu da tekrar denemeden önce ne kadar beklemeniz gerektiğini belirten bir Retry-After header içerebilir.

Hız Sınırlamalarının Uygulandığı Seviyeler

  • IP başına
  • Alt ağ başına
  • API anahtarı başına
  • Hesap başına

Bir istemci bu limitleri aştığında, sunucu geçici olarak isteklerini yerine getirmeyi durdurabilir ve HTTP 429 "Çok Fazla İstek" ile yanıt verebilir. İsteklerin büyük, döner bir proxy havuzuna dağıtılması, her IP'yi ölçekli olarak IP başına hız limitleri altında tutmaya yardımcı olur.

Yaygın Hız Sınırlama Algoritmaları

  • Sabit pencere: İstekleri sayar ve her dönemin başında sayacı sıfırlar, bu nedenle trafik zirveleri her sıfırlama etrafında kayabilir.
  • Kaydırmalı pencere: Önceki dönemin sayısını, mevcut pencere ile ne kadar örtüştüğüne göre ağırlıklandırır, bu da o zirveleri yumuşatır.
  • Token bucket: Token'lar maksimuma kadar sabit bir hızda yeniden doldurulur. Her istek bir token harcar, bu nedenle patlamalara bucket'ın boyutuna kadar izin verilir.
  • Sızıntılı bucket: İstekler sabit bir hızda boşalır. Bucket dolduğunda, yeni istekler reddedilir.

Sitelerin Hız Sınırlamayı Kullanma Nedenleri

Scraping sadece bir hedeftir. Hız limitleri ayrıca şunlara yardımcı olur:

  • Brute-force giriş denemelerini yavaşlatmak; Cloudflare, bunu hem IP adresi hem de kullanıcı adı ile takip etmeyi önerir.
  • Blunt DoS ve DDoS trafik akınlarını engellemek.
  • API kullanımını kullanıcı başına kotalar içinde tutmak, örneğin saat veya gün başına belirli bir çağrı sayısı, kötüye kullanım olmasa bile.

İlgili Terimler