El usuario ha enviado demasiadas solicitudes en una cantidad de tiempo determinada (“limitación de tasa”).
Las representaciones de respuesta DEBERÍAN incluir detalles explicando la condición, y PUEDEN incluir un encabezado Retry-After indicando cuánto tiempo esperar antes de hacer una nueva solicitud.
Por ejemplo:
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600
<html>
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too Many Requests</h1>
<p>I only allow 50 requests per hour to this Web site per
logged in user. Try again soon.</p>
</body>
</html>
Tenga en cuenta que esta especificación no define cómo el servidor de origen identifica al usuario, ni cómo cuenta las solicitudes. Por ejemplo, un servidor de origen que está limitando las tasas de solicitud puede hacerlo basándose en conteos de solicitudes por recurso, en todo el servidor, o incluso entre un conjunto de servidores. Asimismo, podría identificar al usuario por sus credenciales de autenticación, o una cookie con estado.
Las respuestas con el código de estado 429 NO DEBEN ser almacenadas por un caché.
- Source: RFC6585 Section 4
Referencias por lenguaje
- .NET HTTP Status Enum
HttpStatusCode.TooManyRequests - Rust HTTP Status Constant
http::StatusCode::TOO_MANY_REQUESTS - Go HTTP Status Constant
http.StatusTooManyRequests - Symfony HTTP Status Constant
Response::HTTP_TOO_MANY_REQUESTS