Sobes.tech
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 կամ հաշվիչների միջոցով։