Sobes.tech
Middle

Kas ir rate limiting un kā to īstenot?

sobes.tech AI

Atbilde no AI

Rate limiting — tas mehānisms, kas ierobežo skaitu pieprasījumu, ko klients var nosūtīt uz serveri noteiktā laika posmā. Tas palīdz aizsargāt serveri no pārslodzes un ļaunprātīgas izmantošanas.

Ieviešana var notikt servera vai klienta pusē. Frontendā bieži tiek izmantota vienkārša aizsardzība, piemēram, atkārtotu klikšķu bloķēšana vai API izsaukumu biežuma ierobežošana.

Vienkāršs JavaScript piemērs ar taimeri:

let lastRequestTime = 0;
const RATE_LIMIT_INTERVAL = 1000; // 1 sekunde

function sendRequest() {
  const now = Date.now();
  if (now - lastRequestTime < RATE_LIMIT_INTERVAL) {
    console.log('Pārāk bieži! Lūdzu, uzgaidiet nedaudz.');
    return;
  }
  lastRequestTime = now;
  fetch('/api/data')
    .then(response => response.json())
    .then(data => console.log(data));
}

Kompleksākiem gadījumiem izmanto bibliotēkas vai serverī realizē rate limiting ar Redis, tokeniem vai skaitītājiem.