DevToolPal
ไทย
4xx ข้อผิดพลาดฝั่งไคลเอนต์

429 Too Many Requests

คำขอมากเกินไป

ความหมาย

ไคลเอนต์ส่งคำขอมากเกินไปในช่วงเวลาหนึ่ง (การจำกัดอัตรา) Retry-After อาจบอกว่าต้องรอนานเท่าใด

สาเหตุที่พบบ่อย

  • เกินขีดจำกัดอัตราหรือโควตาของ API
  • วงวนการลองซ้ำที่ไม่มี backoff
  • ผู้ใช้จำนวนมากอยู่หลัง IP ที่ใช้ร่วมกันเดียว

วิธีแก้ไข

สำหรับไคลเอนต์หรือผู้เยี่ยมชม

ทำตาม Retry-After ใช้ exponential backoff พร้อม jitter แคชผลลัพธ์ และรวมคำขอเป็นชุด

สำหรับผู้ดูแลเว็บไซต์หรือ API

คืน header Retry-After และ RateLimit เพื่อให้ไคลเอนต์ปรับตัวได้ และจำกัดตาม key หรือผู้ใช้ ไม่ใช่เพียงตาม 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."
}

ข้อกำหนด

RFC 6585 §4

คำถามที่พบบ่อย

› หลัง 429 ควรรอนานเท่าใด

ใช้ Retry-After หากมี ไม่เช่นนั้นให้ถอยแบบทวีคูณ เช่น 1, 2, 4, 8 วินาทีพร้อม jitter แบบสุ่ม

› 429 ส่งผลเสียต่อ SEO ไหม

Googlebot จะลดความถี่การเก็บข้อมูลเมื่อเห็น 429 ช่วงสั้น ๆ ไม่เป็นไร แต่ถ้านานอาจทำให้การจัดทำดัชนีล่าช้า