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>
<head>
  <title>Too Many Requests</title>
</head>
<body>
  <h1>Too Many Requests</h1>
  <p>你的請求過於頻繁!請稍後再試。</p>
</body>
</html>

規範

Specification
RFC 6585
# section-4

參見