Tüm Sayfalar / 60 - Rate Limiting
Sayfa 60 / 161
İstek Sınırlandırma

Rate Limiting

Aşırı istekleri nasıl kontrol ediyoruz?

Biz Ne Yaptık?

Rate Limiting (İstek Sınırlandırma) ile sistemi aşırı yüklenmeden koruyoruz. Bir kullanıcı veya bot dakikada çok fazla istek atarsa geçici olarak engellenir.

Basit Anlatım

Trafik ışığı gibi düşünün: Herkes aynı anda geçmeye çalışırsa trafik kilitlenir. Biz her kullanıcıya dakikada belirli sayıda "geçiş hakkı" veriyoruz. Hakkını kullanan beklemek zorunda.

Web Sayfaları

Dakikada 60 istek

API İstekleri

Dakikada 30 istek

Giriş Denemesi

5 deneme / 15 dk

60
İstek/dk
429
Hata Kodu
1 dk
Bekleme
0
DDoS

Arkada Ne Oluyor?

1

İstek Gelir

Kullanıcı bir sayfaya veya API'ye istek gönderir.

2

Sayaç Kontrol Edilir

Redis'te bu IP/kullanıcı için kaç istek yapıldığı kontrol edilir.

3

Limit Karşılaştırması

İstek sayısı < Limit mi? Evet → Geç. Hayır → Bekle.

4

Sayaç Artırılır veya Reset

İstek işlenirse sayaç +1, dakika dolunca sıfırlanır.

Normal Kullanım

İstek işlenir, sayfa yüklenir. Kalan hak: 59/60

Limit Aşıldı

429 Too Many Requests hatası, X saniye bekle mesajı.

Arkaplanda Neler Çalışıyor?

Her istek geldiğinde sistem sayaç kontrol eder ve limiti aşan istekleri engeller. İşte bu süreçte gerçekleşen teknik adımlar:

1. İstemci Tanımlama

İstek geldiğinde IP adresi ve/veya user_id ile istemci tanımlanır. $request->ip() veya auth()->id() kullanılır.

2. Redis Sayaç Sorgusu

Redis::get("rate:{$key}") ile mevcut istek sayısı çekilir. Redis, yüksek performanslı in-memory veritabanı olarak sayaçları tutar.

3. Limit Karşılaştırması

RateLimiter::hit($key) ile sayaç artırılır ve $limit = 60 ile karşılaştırılır. Sayaç < Limit ise geçiş izni verilir.

4. TTL ve Reset

Sayaç EXPIRE ile 60 saniye sonra otomatik sıfırlanır. Her dakika başında kullanıcı yeni 60 hak kazanır.

5. Limit Aşımı (429)

Sayaç >= Limit ise abort(429) çağrılır. Response header'da Retry-After: X saniye bilgisi döner.

6. Header Bilgileri

Her response'ta X-RateLimit-Limit: 60, X-RateLimit-Remaining: 58 header'ları eklenir.

Bu Sayfanın Anahtar Terimleri

Rate Limiting

(İstek Sınırlandırma)

Belirli sürede yapılabilecek istek sayısını sınırlamak.

429 Too Many Requests

(Çok Fazla İstek)

Limit aşıldığında dönen HTTP hata kodu.

DDoS

(Distributed Denial of Service)

Sistemi çökertmek için binlerce istek gönderme saldırısı.

Throttling

(Kısıtlama)

Rate limiting'in teknik adı. Hız kısıtlayıcı.

Kalan İstek
58/60
Rate Limiter
Aktif
60
İstek/dk
0
Engellenen