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.