Wat is snelheidsbeperking?
Snelheidsbeperking is een controlemechanisme dat cloud-API's gebruiken om het aantal aanvragen te reguleren dat een gebruiker in een bepaald tijdsbestek kan indienen. Cloud-API-producenten gebruiken snelheidsbeperking om ervoor te zorgen dat de stroom van aanvragen de service niet overweldigt. Snelheidsbeperking stelt een limiet in voor de snelheid en het volume van API-aanroepen, meestal gedefinieerd in termen van aanvragen per periode.
Waarom cloud-API's frequentiebeperking gebruiken
- Overbelasting voorkomen. Snelheidsbeperking zorgt ervoor dat de API-server stabiel en responsief blijft door te voorkomen dat één gebruiker of service deze overspoelt met te veel aanvragen.
- Zorg voor eerlijk gebruik. Snelheidsbeperking dwingt eerlijk gebruiksbeleid af, zodat geen enkele gebruiker de API-resources in beslag maakt, waardoor eerlijke toegang tot alle gebruikers mogelijk is.
- Beveiliging. Het helpt bij het beperken van DDoS-aanvallen (Distributed Denial of Service) en ander beledigend gedrag door het aantal aanvragen van mogelijk schadelijke bronnen te beperken.
- Cost Management. Voor cloudserviceproviders helpt snelheidsbeperking bij het beheren van operationele kosten door onvoorspelbare of overmatige gebruik van resources te voorkomen.
- Quality of Service. Door verkeerspieken te voorkomen, zorgt snelheidsbeperking voor een consistente kwaliteit van de service voor alle gebruikers.
Hoe u snelheidsbeperking in uw apps ervaart
Wanneer u apps bouwt die cloud-API's integreren, controleert u de bijbehorende documentatie om te controleren of deze ondersteuning bieden voor frequentiebeperking. Als dat het geval is, ontvangt RateLimit-...
of X-RateLimit-...
antwoordheaders met informatie over de frequentielimieten. U kunt deze informatie in uw toepassing gebruiken om ervoor te zorgen dat u de frequentielimieten van de API niet overschrijdt. De RateLimit-Remaining
header geeft bijvoorbeeld het aantal aanvragen aan dat in het huidige venster resteren. Als u een antwoord ontvangt met deze header ingesteld op 0, weet u dat u de frequentielimiet hebt bereikt en moet wachten op het volgende venster voordat u een andere aanvraag verzendt. De RateLimit-Reset
header geeft de tijd aan waarop de frequentielimiet opnieuw wordt ingesteld. Houd er rekening mee dat sommige API's alleen de RateLimit-...
headers verzenden nadat u een drempelwaarde hebt bereikt, bijvoorbeeld wanneer u 10% van de resterende aanvragen hebt.
Wanneer u de frequentielimiet overschrijdt, beperkt de API uw aanvragen die een HTTP 429-statuscode (Te veel aanvragen) retourneren. Sommige API's kunnen ook een Retry-After
header verzenden die aangeeft hoe lang u moet wachten voordat u een andere aanvraag verzendt.
Om beperking te voorkomen en ervoor te zorgen dat uw toepassing responsief blijft, moet u snelheidsbeperking in uw toepassing implementeren. Afhankelijk van uw technologiestack zijn er verschillende bibliotheken waarmee u snelheidsbeperking in uw toepassing kunt afhandelen. Nadat u snelheidsbeperking in uw toepassing hebt geïmplementeerd, test u of deze snelheidsbeperking correct verwerkt.