Définition courte
Rate limiting (limitation de débit) : mécanisme qui restreint le nombre d’actions (par ex. requêtes à un site ou tentatives de connexion) qu’un utilisateur, une IP ou une application peut faire pendant une période donnée.
Pourquoi on l’utilise
– Protéger les serveurs contre la surcharge ou les attaques (ex. DDoS).
– Empêcher les abus (ex. bruteforce, scraping intensif).
– Garantir une répartition équitable des ressources entre les utilisateurs.
Comment ça fonctionne (simple)
– On fixe une règle du type “X actions par Y secondes/minutes/heures”.
– Si la limite est dépassée, la requête est rejetée, ralentée ou mise en file d’attente. Souvent, le serveur renvoie un code d’erreur (ex. HTTP 429 Too Many Requests) et parfois un délai conseillé avant de réessayer (Retry-After).
Exemples concrets
– API publique : 100 requêtes par minute par clé API.
– Formulaire de connexion : 5 tentatives en 10 minutes par adresse IP.
– Site web : limitation du nombre de téléchargements simultanés.
Bonnes pratiques
– Informer l’utilisateur quand il atteint la limite et indiquer quand il pourra réessayer.
– Adapter les limites selon le type d’utilisateur (ex. utilisateurs payants vs gratuits).
– Autoriser de petits “pics” d’activité (burst) sans tout bloquer.
Métaphore simple
Pensez à un robinet : le rate limiting contrôle le débit pour éviter que la canalisation (le serveur) n’explose sous la pression.