Middle
Cos'è il rate limiting e come implementarlo?
sobes.tech AI
Risposta dell'AI
Il rate limiting è un meccanismo che limita il numero di richieste che un client può inviare al server in un determinato intervallo di tempo. Questo aiuta a proteggere il server da sovraccarichi e abusi.
L'implementazione può essere lato server o lato client. Sul frontend, spesso si applica una protezione semplice, come bloccare clic ripetuti o limitare la frequenza di chiamate API.
Esempio di implementazione semplice in JavaScript con un timer:
let lastRequestTime = 0;
const RATE_LIMIT_INTERVAL = 1000; // 1 secondo
function sendRequest() {
const now = Date.now();
if (now - lastRequestTime < RATE_LIMIT_INTERVAL) {
console.log('Troppo frequente! Attendere un momento.');
return;
}
lastRequestTime = now;
// inviamo la richiesta
fetch('/api/data')
.then(response => response.json())
.then(data => console.log(data));
}
Per casi più complessi, si utilizzano librerie o si implementa il rate limiting sul server con Redis, token o contatori.