Middle
Ի՞նչ է արագության սահմանափակումը և ինչպես իրականացնելը:
sobes.tech AI
Պատասխան AI-ից
Rate limiting — դա մեխանիզմ է, որը սահմանափակում է հաճախորդի կողմից սերվերին ուղարկվող հարցումների քանակը որոշ ժամանակահատվածում: Սա օգնում է պաշտպանել սերվերին ծանրաբեռնվածությունից և չարաշահումներից:
Իմպլեմենտացիան կարող է կատարվել սերվերի կամ հաճախորդի կողմում: Ֆրոնտենդում հաճախ կիրառվում է պարզ պաշտպանություն, օրինակ՝ կրկնվող սեղմումները խոչընդոտել կամ API կանչերի հաճախականությունը սահմանափակել:
Օրինակ՝ JavaScript-ով օգտագործելով ժամացույց՝
let lastRequestTime = 0;
const RATE_LIMIT_INTERVAL = 1000; // 1 վայրկյան
function sendRequest() {
const now = Date.now();
if (now - lastRequestTime < RATE_LIMIT_INTERVAL) {
console.log('Շատ հաճախ! Խնդրում ենք սպասել։');
return;
}
lastRequestTime = now;
fetch('/api/data')
.then(response => response.json())
.then(data => console.log(data));
}
Ավելին՝ ավելի բարդ դեպքերում օգտագործում են գրադարաններ կամ իրականացնում են rate limiting սերվերում Redis, token կամ հաշվիչների միջոցով։