429 Too Many Requests

HTTP 429 Too Many Requests 客户端错误响应状态码表示客户端在给定时间内发送了太多请求。这种要求客户端降低请求速率的机制通常被称为“速率限制”。

响应中可能包含一个 Retry-After 头部,以指示客户端在再次发出请求之前应该等待多长时间。

速率限制的实现方式各不相同;限制可以是服务器范围的,也可以是针对每个资源的。通常,速率限制是基于客户端的 IP 地址,但如果请求经过身份验证或包含 cookie,则也可以针对特定的用户或授权应用程序。

状态

http
429 Too Many Requests

示例

包含 Retry-After 头部的响应

以下请求由配置错误的客户端在循环中重复发送

http
GET /reports/mdn HTTP/1.1
Host: example.com

在此示例中,当客户端每分钟请求量超过设定的阈值时,服务器范围的速率限制就会激活。服务器会返回一个 429 响应,其中包含一个 Retry-After 头部,指示该客户端在 60 分钟后才能再次发送请求。

http
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600

<html lang="en-US">
  <head>
    <title>Too Many Requests</title>
  </head>
  <body>
    <h1>Too Many Requests</h1>
    <p>You're doing that too often! Try again later.</p>
  </body>
</html>

规范

规范
RFC 6585
# 第四节

另见