Sobes.tech
Middle

Wat is rate limiting en hoe implementeer je het?

sobes.tech AI

Antwoord van AI

Rate limiting is een mechanisme dat het aantal verzoeken beperkt dat een client binnen een bepaalde tijdsperiode naar de server kan sturen. Dit helpt de server te beschermen tegen overbelasting en misbruik.

De implementatie kan aan de serverzijde of aan de clientzijde plaatsvinden. Aan de frontend wordt vaak eenvoudige bescherming toegepast, zoals het blokkeren van herhaalde klikken op knoppen of het beperken van de frequentie van API-aanroepen.

Voorbeeld van een eenvoudige implementatie in JavaScript met behulp van een timer:

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

function sendRequest() {
  const now = Date.now();
  if (now - lastRequestTime < RATE_LIMIT_INTERVAL) {
    console.log('Te vaak! Wacht even.');
    return;
  }
  lastRequestTime = now;
  // verzend de aanvraag
  fetch('/api/data')
    .then(response => response.json())
    .then(data => console.log(data));
}

Voor complexere gevallen worden bibliotheken gebruikt of wordt rate limiting op de server geïmplementeerd met Redis, tokens of tellers.