Limitation du débit
La limitation du débit est la pratique consistant à plafonner le nombre de requêtes qu’un client (souvent une application sur un ordinateur ou un appareil mobile) peut adresser à un service pendant une période déterminée. Lorsqu’un client dépasse la limite, le service rejette ou retarde les requêtes suivantes (en renvoyant généralement une réponse HTTP 429 Too Many Requests) jusqu’à la réinitialisation de la fenêtre. La limitation du débit protège un service contre la surcharge, garantit un accès équitable entre les utilisateurs et applique les paliers d’utilisation que de nombreuses API commercialisent.
En bref : la limitation du débit plafonne le nombre de requêtes que vous pouvez effectuer dans une fenêtre de temps donnée, de sorte qu’aucun client ne puisse à lui seul submerger un service ni dépasser le forfait qu’il paie.
Comment fonctionne la limitation du débit
Un service compare l’utilisation de chaque client à un quota défini :
- Définir une limite : le service fixe un quota, tel qu’un nombre de requêtes par seconde, par minute ou par mois, souvent associé à une clé API ou à une adresse IP.
- Compter les requêtes : chaque requête entrante est comptabilisée par rapport au quota à l’aide d’un algorithme tel qu’une fenêtre fixe (réinitialisée à intervalles définis), une fenêtre glissante (comptage continu sur les N dernières secondes) ou un token bucket (un quota courant qui se recharge à un rythme constant).
- Autoriser ou rejeter : si le client est en dessous de la limite, la requête est traitée ; s’il dépasse sa limite, le service renvoie une réponse 429 au lieu de la traiter.
- Signaler au client : les en-têtes de réponse du service communiquent cet état. Par exemple, un en-tête de réponse tel que « RateLimit-Remaining » peut indiquer le quota restant, tandis que « Retry-After » indique au client combien de temps il doit attendre avant de réessayer.
- Réinitialiser : lorsque la fenêtre de temps s’écoule, le quota se recharge et les requêtes sont de nouveau acceptées.
L’idée fondamentale est que la limitation du débit est un contrat, et non un échec : une réponse 429 est le service qui demande à un client de ralentir, et non le signe que quelque chose est cassé.
Limitation du débit vs throttling et quotas
- La limitation du débit et le throttling sont souvent employés de manière interchangeable, bien qu’on puisse les distinguer : la limitation du débit fixe un plafond strict et rejette les requêtes dépassant le seuil avec une réponse 429, tandis que le throttling ralentit ou met en file d’attente les requêtes excédentaires plutôt que de les refuser purement et simplement.
- Une limite de débit est généralement un plafond à fenêtre courte, par seconde ou par minute ; un quota est généralement un quota plus large sur une période plus longue, par jour ou par mois. Les API appliquent souvent les deux à la fois.
- Une réponse 429 signifie que le client a dépassé sa limite et qu’il doit faire une pause puis réessayer conformément à Retry-After (lorsqu’il est présent) ou à une politique de backoff ; une réponse 503 signifie que le serveur est indisponible (que ce soit en raison d’une surcharge, d’une maintenance ou d’un autre problème côté serveur) plutôt qu’un problème de quota du client.
Là où la limitation du débit compte
- Développer sur n’importe quelle API : les clients bien conçus respectent Retry-After, appliquent un backoff exponentiel avec jitter (en attendant progressivement plus longtemps entre les tentatives, avec un facteur aléatoire ajouté pour éviter que plusieurs clients ne réessaient simultanément) et surveillent RateLimit-Remaining pour ralentir avant d’atteindre le plafond.
- Charges de travail à haut volume et agentiques : un système de recherche agentique qui déclenche de nombreux appels en boucle peut atteindre les limites rapidement ; la mise en file d’attente des requêtes et le backoff sont donc essentiels.
- Exploration : lorsqu’un site renvoie des réponses 429 répétées, les robots d’indexation de recherche réduisent leur budget d’exploration pour ce site jusqu’au retour de réponses normales.
- API de recherche : une API de recherche publie des limites de débit par forfait, généralement en nombre de requêtes par seconde et par mois. Choisir un palier revient donc à faire correspondre ces limites à votre volume de requêtes attendu ; une gestion élégante des réponses 429 maintient un pipeline de réponses fiable en cas de pics de trafic, et des limites plus élevées et plus prévisibles affectent principalement le débit et la mise en file d’attente côté client, avec des impacts sur la Latence qui sont généralement indirects et dépendants de la charge de travail.
La limitation du débit fait partie du contrat entre un client et toute API : la concevoir en tenant compte d’elle, plutôt qu’en la contournant, est ce qui maintient une intégration stable à mesure qu’elle se développe.
Termes associés
Débit, Latence, HTTP 429, Retry-After, backoff exponentiel, quota, clé API, budget d’exploration, API de recherche.