ความหมาย
ไคลเอนต์ส่งคำขอมากเกินไปในช่วงเวลาหนึ่ง (การจำกัดอัตรา) 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."
} ข้อกำหนด
คำถามที่พบบ่อย
› หลัง 429 ควรรอนานเท่าใด
ใช้ Retry-After หากมี ไม่เช่นนั้นให้ถอยแบบทวีคูณ เช่น 1, 2, 4, 8 วินาทีพร้อม jitter แบบสุ่ม
› 429 ส่งผลเสียต่อ SEO ไหม
Googlebot จะลดความถี่การเก็บข้อมูลเมื่อเห็น 429 ช่วงสั้น ๆ ไม่เป็นไร แต่ถ้านานอาจทำให้การจัดทำดัชนีล่าช้า