意義
用戶端在一定時間內送出太多請求(速率限制)。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 會放慢檢索。短時間沒關係,長時間可能延後索引。