Rate limiting
- Node.js kursu
- İleri seviye
- Ders 21/83
- 5 dk
express-rate-limit ile rate limiting öğrenirsin.
Rate limiting nedir?
Hız sınırlama (rate limiting), bir istemcinin belirli süre içinde yapabileceği istek sayısını sınırlar. Bu, kötü niyetli istemcilerin sunucuyu aşırı yüklemesini (DDoS) engeller.
Express'te express-rate-limit modülü yaygın bir seçimdir. rateLimit({ windowMs: 60000, max: 100 }) her istemciye dakikada en fazla 100 istek izni verir. Sınır aşılınca 429 Too Many Requests yanıtı döner. API'lerde temel bir korumadır.
rateLimit ayarları
express-rate-limit modülünü kullanmak için önce const rateLimit = require("express-rate-limit") ile içe aktarır, sonra bir limiter oluşturursun. const limiter = rateLimit({ windowMs: 60000, max: 100 }).
Sonra app.use(limiter) ile tüm rotalara uygularsın. Özelleştirme: message ile hata mesajı, standardHeaders ile yanıt başlıklarında limit bilgisini gösterebilirsin. İstekleri IP'ye göre sayar; proxy arkasında trust proxy ayarı gerekir.
Uygulama limiter türünü yaz
express-rate-limit modülünü içe aktar. Bir limiter oluştur (windowMs: 1000, max: 5). typeof limiter sonucunu yaz.
Başlangıç kodu
// modülü içe aktar
// limiter oluştur
// türünü yazÖrnek çözüm
const rateLimit = require("express-rate-limit");
const limiter = rateLimit({ windowMs: 1000, max: 5 });
console.log(typeof limiter);Beklenen çıktı
function
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
express-rate-limit |
Hız sınırlayıcı |
windowMs |
Pencere süresi |
max |
Maksimum istek |
429 |
Çok fazla istek |
2 Maksimum değeri tamamla
const limiter = rateLimit({ max: ____ })
const limiter = rateLimit({ max: 5 })
Açıklama: max: 5 her pencerede 5 istek izni verir.
3 Rate limiting ne engeller?
- Aşırı istekleri Doğru cevap
- Bellek sızıntısını
- CSS hatalarını
- Yavaş yanıtları
Açıklama: Rate limiting aşırı istekleri engeller.