Sobes.tech
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.