पाठ 17 / 24

रेट लिमिटिंग

API को दुरुपयोग और बेकाबू क्लाइंट से बचाना।

रिक्वेस्ट क्यों सीमित करें

बिना सीमा के, एक गलत व्यवहार करने वाला स्क्रिप्ट, रिट्राई स्टॉर्म, या दुर्भावनापूर्ण एक्टर आपके API को भारी कर सकता है और बाकी सबके लिए इसे बिगाड़ सकता है। रेट लिमिटिंग यह सीमित करती है कि एक की/यूज़र/IP एक समय-सीमा में कितनी रिक्वेस्ट कर सकता है।

क्लाइंट को बताना

429 Too Many Requests को ऐसे हेडर के साथ लौटाएँ ताकि अच्छे व्यवहार वाले क्लाइंट खुद-ब-खुद रुक सकें।

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1725448800
Retry-After: 30

टपकती बाल्टी

टोकन बकेट एल्गोरिद्म एक स्थिर दर पर बाल्टी में टोकन भरता है; हर रिक्वेस्ट एक खर्च करती है। छोटे उछाल जमा टोकन को खत्म करते हैं, पर आप कभी भी भरने की दर से अधिक स्थायी रूप से टिक नहीं सकते — सहज, और समझने में सरल।

त्वरित जाँच: एक क्लाइंट अपनी रेट सीमा पार कर देता है। API को क्या लौटाना चाहिए?

  • 403 Forbidden
  • 429 Too Many Requests
  • 503 Service Unavailable
Answer

429 Too Many Requests — 429 विशेष रूप से रेट लिमिटिंग बताता है, आदर्श रूप से Retry-After हेडर के साथ जो क्लाइंट को बताता है कि दोबारा कब कोशिश करे।