Rate Limiting تعداد درخواست مجاز از یک کاربر، کلید API یا IP را در بازه زمانی کنترل میکند تا از سوءاستفاده و مصرف بیشازحد منابع جلوگیری شود.
Fixed Window، Sliding Window و Token Bucket الگوریتمهای رایج هستند. پاسخ HTTP 429 معمولاً برای عبور از حد استفاده میشود.
برای محافظت از API، Token Bucket میتواند اجازه درخواستهای کوتاهمدت بیشتر را بدهد اما میانگین نرخ را محدود نگه دارد.
نمونه کوتاه
Route::middleware("throttle:60,1")->get("/api/search", $handler);
نمونه محدودیت نرخ با میدلور لاراول
Route::middleware('throttle:60,1')
->get('/api/products', [ProductController::class, 'index']);
ریت لیمیتینگ برای محدود کردن مصرف API و برخی الگوهای سوءاستفاده مفید است. سیاست مناسب باید شناسه کاربر، IP، محدودیت کلی و پاسخ HTTP 429 را بهدرستی مدیریت کند.