O rate limiting protege o server de requests demais; o HTTP caching evita repetir trabalho para requests que ele já respondeu. Ambos são padronizados no HTTP e ambos são essenciais para uma API de produção em escala.
Rate limiting
O server limita quantos requests um client pode fazer por janela e retorna 429 Too Many Requests quando excedido. Ele anuncia os limites via headers para que um client bem-comportado possa se autolimitar (self-throttle):
HTTP/1.1 200 OK
RateLimit-Limit: 100
RateLimit-Remaining: 12
RateLimit-Reset: 30
