Sobes.tech
Middle

Šta je limitiranje brzine i kako ga implementirati?

sobes.tech АИ

Одговор од АИ

Ograničenje brzine (rate limiting) je mehanizam koji ograničava broj zahteva koje klijent može poslati serveru u određenom vremenskom periodu. Ovo pomaže u zaštiti servera od preopterećenja i zloupotreba.

Implementacija može biti na strani servera ili klijenta. Na frontendu se često primenjuje jednostavna zaštita, kao što je blokiranje ponovljenih klikova ili ograničavanje frekvencije poziva API-ja.

Primer jednostavne implementacije u JavaScript-u pomoću tajmera:

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

function sendRequest() {
  const now = Date.now();
  if (now - lastRequestTime < RATE_LIMIT_INTERVAL) {
    console.log('Prečesto! Sačekajte malo.');
    return;
  }
  lastRequestTime = now;
  fetch('/api/data')
    .then(response => response.json())
    .then(data => console.log(data));
}

Za složenije slučajeve koriste se biblioteke ili se rate limiting implementira na serveru pomoću Redis-a, tokena ili brojača.