429 Too Many Requests
Le code de statut de réponse d'erreur client HTTP 429 Too Many Requests indique que le client a envoyé trop de requêtes dans un laps de temps donné.
Ce mécanisme qui consiste à demander au client de ralentir la fréquence des requêtes est couramment appelé « limitation de débit ».
Un en-tête Retry-After peut être inclus dans cette réponse pour indiquer combien de temps le client doit attendre avant de refaire une requête.
Les implémentations de la limitation de débit varient ; les restrictions peuvent s'appliquer à l'ensemble du serveur ou à une ressource spécifique. En général, les restrictions de limitation de débit sont basées sur l'adresse IP du client, mais peuvent être spécifiques à des utilisateur·ice·s ou à des applications autorisées si les requêtes sont authentifiées ou contiennent un cookie.
Statut
429 Too Many Requests
Exemples
>Réponse contenant l'en-tête Retry-After
La requête suivante est envoyée de façon répétée en boucle par un client mal configuré :
GET /reports/mdn HTTP/1.1
Host: example.com
Dans cet exemple, la limitation de débit à l'échelle du serveur est active lorsqu'un client dépasse un seuil défini de demandes par minute.
Une réponse 429 est retournée avec un en-tête Retry-After qui indique que les requêtes seront à nouveau autorisées pour ce client dans 60 minutes :
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600
<html lang="fr">
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Trop de requêtes</h1>
<p>Vous effectuez cette action trop souvent ! Veuillez réessayer plus tard.</p>
</body>
</html>
Spécifications
| Specification |
|---|
| RFC 6585> # section-4> |
Voir aussi
- Les codes de statut de réponse HTTP
- L'en-tête HTTP
Retry-After - Solution Python : Comment éviter l'erreur HTTP 429 en Python (angl.)