يحمي الـ rate limiting الخادم من كثرة الطلبات؛ ويتفادى الـ HTTP caching تكرار العمل لطلبات أجاب عنها بالفعل. كلاهما مُقنَّن في HTTP وكلاهما جوهري لـ API إنتاجيّ عند الحجم الكبير.
Rate limiting
يحدّ الخادم عدد الطلبات المسموح للعميل بها في كل نافذة، ويُرجع 429 Too Many Requests عند التجاوز. ويعلن الحدود عبر headers ليتمكّن عميل حسن السلوك من تنظيم نفسه:
HTTP/1.1 200 OK
RateLimit-Limit: 100
RateLimit-Remaining: 12
RateLimit-Reset: 30
HTTP/1.1 429 Too Many Requests
Retry-After: 30
{ "error": "rate limit exceeded, retry in 30s" }
