Comprendre le mécanisme
429 indique une limitation de demandes selon une politique serveur. Une politique utile précise la ressource protégée, les dimensions de comptage, la fenêtre et le comportement de reprise. Une adresse réseau partagée peut représenter plusieurs utilisateurs ; une adresse annoncée dans un champ non fiable peut être falsifiée. Selon le risque, acteur, opération, coût et ressource métier peuvent être des dimensions plus pertinentes qu’un seul nombre de connexions.
Raisonner et vérifier
Un limiteur ne remplace pas l’autorisation et doit rester cohérent entre instances si son contrat est global. Le client peut recevoir une indication Retry-After, sans obtenir un droit illimité de réessayer. Testez les bordures de fenêtre, les actions coûteuses et la récupération après expiration. Une tentative refusée ne doit pas avoir déjà produit l’effet métier qu’on voulait borner.
Signal 429
429 indique une limitation selon une politique. La cause protocolaire n’est pas cette preuve d’identité. Le statut annonce une limitation selon la politique du service. Le client doit pouvoir distinguer ce refus d’une panne interne et connaître les conditions de reprise lorsque le contrat les fournit.
Understand this common mistake
429 prouve une erreur de mot de passe.
La cause protocolaire n’est pas cette preuve d’identité.
Dimensions
Le quota doit préciser ressource et fenêtre. L’interprétation demande dimensions et durée. Précisez ressource, acteur, tenant, fenêtre et coût compté. Un nombre sans unité ni portée ne décrit pas une règle testable ; dix demandes par seconde diffèrent de dix exports simultanés.
Understand this common mistake
Un nombre sans unité suffit à définir la politique.
L’interprétation demande dimensions et durée.
IP partagée
Une IP partagée peut représenter plusieurs acteurs. NAT et réseaux partagés compliquent cette équivalence. Un NAT peut regrouper plusieurs personnes derrière une adresse. Une limite par IP seule peut pénaliser des utilisateurs légitimes ; combinez les dimensions adaptées sans faire confiance à une identité réseau fournie librement.
Understand this common mistake
Une IP correspond toujours à un utilisateur unique.
NAT et réseaux partagés compliquent cette équivalence.
Proxies
Une adresse annoncée doit suivre la confiance proxy. Le champ reçu peut être contrôlé par un client. L’adresse cliente doit venir de la chaîne de confiance configurée. Si le client peut choisir X-Forwarded-For utilisé par le quota, il peut changer de compteur sans changer d’acteur réel.
Understand this common mistake
Tout X-Forwarded-For donne une identité fiable au limiteur.
Le champ reçu peut être contrôlé par un client.
Plusieurs instances
Un quota global demande une coordination adaptée. Les états locaux peuvent être indépendants. Des compteurs locaux indépendants multiplient la capacité globale apparente. Utilisez une coordination adaptée au contrat et testez deux instances lorsque vous annoncez un plafond partagé par tout le service.
Understand this common mistake
Un compteur local est toujours global sur dix instances.
Les états locaux peuvent être indépendants.
Retry-After
Retry-After peut guider la reprise. Une indication de délai n’est pas une autorisation illimitée. Une valeur de 30 dans la forme numérique indique ici des secondes. Le client doit respecter le contrat et ajouter une stratégie de reprise bornée, sans relancer immédiatement une rafale identique.
Understand this common mistake
Retry-After accorde un nombre illimité de retries.
Une indication de délai n’est pas une autorisation illimitée.
Coût variable
Le coût métier peut être une dimension utile. Les opérations consomment des ressources différentes. Un export lourd peut coûter davantage qu’une lecture simple. Une politique pondérée ou une limite d’opérations actives peut mieux protéger la capacité qu’un simple compteur uniforme de requêtes.
Understand this common mistake
Toute requête a nécessairement le même coût.
Les opérations consomment des ressources différentes.
Refus précoce
Un refus pertinent doit précéder l’effet coûteux. Le travail a déjà été effectué si le contrôle arrive après. Décidez avant l’effet coûteux lorsque la règle l’exige. Retourner 429 après avoir appelé le prestataire ou généré un gros fichier ne protège pas la ressource que le quota devait borner.
Understand this common mistake
Envoyer l’email puis limiter protège cet envoi.
Le travail a déjà été effectué si le contrôle arrive après.
Bornes de fenêtre
Les bordures de fenêtre doivent être testées. Le comportement aux seuils demande des essais spécifiques. Testez début et fin de fenêtre et concurrence proche du plafond. Les algorithmes de fenêtre peuvent autoriser des rafales différentes ; décrivez le comportement mesuré au lieu de promettre une fluidité absolue.
Understand this common mistake
Un seul appel nominal prouve le traitement des bursts.
Le comportement aux seuils demande des essais spécifiques.
Autorisation conservée
La limitation complète l’autorisation. Le budget n’accorde pas de permission métier. Un acteur sous son quota ne gagne aucun droit sur les données d’un tiers. Limitation et contrôle d’accès doivent rester deux décisions explicites, avec leurs propres cas de refus.
Understand this common mistake
Un quota disponible donne accès à tout objet.
Le budget n’accorde pas de permission métier.
Atelier guidé : lire, expliquer et vérifier le code
HTTP/1.1 429 Too Many Requests
Retry-After: 30
Cache-Control: no-store La réponse demande une attente de trente secondes dans cette forme de Retry-After. Définissez aussi le nombre maximal de nouvelles tentatives et le budget global. Côté serveur, vérifiez que le refus intervient avant le travail coûteux et que les compteurs correspondent au périmètre annoncé.
L’annonce ne supprime pas le quota. Cette forme de Retry-After exprime ici des secondes. Ce champ ne décrit pas ce cycle de compte. La reprise peut encore être refusée selon le contrat.
Travail pratique : Définissez une politique de laboratoire pour lecture de catalogue et envoi d’un email coûteux. Testez deux utilisateurs derrière une même adresse.
Critères de correction : Vérifiez que les dimensions choisies évitent de mélanger aveuglément tous les acteurs et bornent réellement le travail coûteux. Testez plusieurs instances, concurrence et reprise, puis documentez les faux refus attendus.
Worked example
HTTP/1.1 429 Too Many Requests
Retry-After: 30
Cache-Control: no-storeLe délai illustratif est exprimé ici en secondes. La stratégie réelle doit définir quota, coût et traitement des demandes concurrentes.
Practical exercise
Définissez une politique de laboratoire pour lecture de catalogue et envoi d’un email coûteux. Testez deux utilisateurs derrière une même adresse.
View a suggested solution
Vérifiez que les dimensions choisies évitent de mélanger aveuglément tous les acteurs et bornent réellement le travail coûteux. Testez plusieurs instances, concurrence et reprise, puis documentez les faux refus attendus.
Verification checklist
- Compter la bonne ressource.
- Confiance des adresses explicite.
- Pas d’effet avant un refus pertinent.
Knowledge check
Related lesson: 36. Limitation de débit et budgets d’abus ↗Module validation
101 questions, local practice target of 75%. Suggested duration of 150 minutes, with no enforced deadline. Questions and choices are shuffled; corrections appear after submission. The quick lesson check and the final course exam remain separate exercises.
Start or resume the 101 questions →This records your own progress and does not certify mastery. Complete the exercise before moving on.
