含义
客户端在一定时间内发送了太多请求(被限流)。Retry-After 可能说明需要等待多久。
常见原因
- 超出 API 速率限制或配额
- 没有退避机制的重试循环
- 大量用户共用一个 IP
解决方法
客户端或访问者
遵守 Retry-After,使用带随机抖动的指数退避,缓存结果并合并请求。
网站或 API 的维护者
返回 Retry-After 和 RateLimit 头让客户端自我调节,并按密钥或用户限流,而不只是按 IP。
响应示例
HTTP/1.1
HTTP/1.1 429 Too Many Requests
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Retry-After: 30
RateLimit-Policy: 100;w=60
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit of 100 requests per minute exceeded."
} 规范
常见问题
› 收到 429 后应该等多久?
有 Retry-After 就按它来;否则使用指数退避,例如 1、2、4、8 秒并加上随机抖动。
› 429 会影响 SEO 吗?
Googlebot 看到 429 会降低抓取速度。短时间没关系,长时间可能推迟收录。