Middle
Čo je to obmedzovanie rýchlosti a ako ho implementovať?
sobes.tech AI
Odpoveď od AI
Obmedzenie hitrosti (rate limiting) je mechanizmus, ki omejuje število zahtevkov, ki jih lahko odjemalec pošlje strežniku v določenem časovnem obdobju. To pomaga zaščititi strežnik pred preobremenitvijo in zlorabami.
Implementacija je lahko na strani strežnika ali odjemalca. Na sprednji strani se pogosto uporablja preprosta zaščita, kot je blokiranje ponovnih klikov ali omejevanje pogostosti klicev API.
Primer preproste implementacije v JavaScriptu z uporabo časovnika:
let lastRequestTime = 0;
const RATE_LIMIT_INTERVAL = 1000; // 1 sekunda
function sendRequest() {
const now = Date.now();
if (now - lastRequestTime < RATE_LIMIT_INTERVAL) {
console.log('Preveč pogosto! Počakajte malo.');
return;
}
lastRequestTime = now;
fetch('/api/data')
.then(response => response.json())
.then(data => console.log(data));
}
Za bolj kompleksne primere se uporabljajo knjižnice ali se rate limiting implementira na strežniku z Redis-om, tokeni ali števalci.