HTTP 202: Alles wat je moet weten over de statuscode 202

De statuscode HTTP 202 is een veelgebruikte, maar soms verrassende klok in de wereld van web API’s en webdiensten. Terwijl sommige responses directe resultaten teruggeven, geeft een HTTP 202-antwoord aan dat het verzoek is ontvangen en geaccepteerd voor verwerking, maar dat het resultaat op een later moment beschikbaar zal zijn. In dit artikel duiken we diep in wat HTTP 202 precies betekent, wanneer je het moet gebruiken, hoe je het implementeert en hoe je het effectief inzet in moderne API-ontwerpen. Ook bekijken we veelvoorkomende valkuilen en praktische voorbeelden zodat zowel beginnende als ervaren ontwikkelaars er direct mee aan de slag kunnen. Daarnaast blijft de tekst overtuigend en leesbaar, zodat je dit artikel kunt inzetten als referentie en SEO-waarde oplevert voor de zoekterm http 202 en gerelateerde varianten zoals HTTP 202 en 202 Accepted.
Wat betekent HTTP 202?
HTTP 202 is de statuscode “Accepted”. Het signaleert dat het verzoek is ontvangen, maar nog niet is voltooid. In tegenstelling tot HTTP 200 OK, dat doorgaans een directe, volledige reactie inhoudt, geeft HTTP 202 aan dat de verwerking in gang is gezet maar nog niet klaar is. De server kan een Location-header of een Retry-After-header leveren om aan te geven waar en wanneer de client kan controleren op de voortgang. In documentatie zie je soms ook de afkorting http 202 in lowercase; de officiële notatie is doorgaans HTTP 202, maar beide vormen komen voor afhankelijk van de context en stijl van de documentatie. Het verschil tussen http 202 en HTTP 202 ligt dus vooral in typografische conventies dan in betekenis.
Waarom HTTP 202 belangrijk is
Het gebruik van HTTP 202 maakt het ontwerp van asynchrone processen en lange taken veel duidelijker. Het voorkomt dat clients eindeloos wachten op een eindstatus en biedt een gestandaardiseerde manier om aan te geven dat een taak is gestart en later kan worden opgehaald. Voor API-ontwikkelaars is dit cruciaal in workflows zoals bestandconversies, batchverwerking, video- of beeldrendering, en uitgebreide berekeningen die tijd kosten. Voor de eindgebruiker of integrator betekent HTTP 202 snellere feedback en beter vertrouwen in de betrouwbaarheid van de API.
Wanneer gebruik je HTTP 202 (Accepted)?
Een HTTP 202 is geschikt als je verzoek auteursrechtelijk en operationeel accepteert maar geen onmiddellijk resultaat kan leveren. Enkele typische scenario’s zijn:
- Asynchrone verwerking: een API accepteert een taak en zet deze in een wachtrij of verwerkingstack.
- Langdurige taken: background jobs zoals video-omzetting, bulkimports of rapportgeneratie.
- Gedecentraliseerde workflows: tekenreeksen of meerdere microservices die samenwerken om een eindresultaat te produceren.
- Gedeelde bronnen: wanneer meerdere systemen samenwerken en wachten op een bevestiging van één onderdeel voordat het eindresultaat bekend is.
Belangrijke aspecten om te overwegen
Bij het kiezen voor HTTP 202 moet je nadenken sobre:
- Hoe wordt de voortgang gerapporteerd? Polling, webhooks, of server-sent events?
- Welke informatie geeft de initiële response terug? Een location-URL voor de taak, een taak-ID, en mogelijke metadata zoals verwachte doorlooptijd?
- Hoe gebruikers de status controleren? Een status-endpoint, een status-URL in de response, of een aparte tracking API?
Technische details van HTTP 202
Het HTTP-protocol specificeert 202 als een “Accepted” statuscode. In een typische HTTP-response ziet het er als volgt uit:
HTTP/1.1 202 Accepted
Date: Mon, 01 Jan 2025 12:00:00 GMT
Content-Type: application/json
Location: https://api.example.com/tasks/12345
Retry-After: 30
{
"status": "accepted",
"taskId": "12345",
"message": "De verwerking is gestart. Gebruik /tasks/12345/status om de voortgang te controleren."
}
In dit voorbeeld zien we de kernpunten van HTTP 202:
- Het >verzoek is ontvangen en aan verwerking toegewijd.
- Een Location-header biedt een aanwijzing waar de voortgang kan worden opgehaald.
- Een payload kan aanvullende informatie bevatten, zoals een taak-ID en statusinformatie.
De rol van Location en Retry-After
De Location-header is bijzonder nuttig bij HTTP 202. Het wijst naar een resource die de voortgang of resultaten van de operatie kan tonen. Als een verwerkingspad een tijd nodig heeft, kan de Retry-After-header worden gebruikt om aan te geven hoe lang de client moet wachten voordat hij opnieuw mag polleren. Het doel is om onnodig server- en netwerkverkeer te voorkomen en tegelijkertijd duidelijke signalen te geven aan de consument van de API.
Verschil tussen HTTP 200 en HTTP 202
Voor veel ontwikkelaars is het onderscheid tussen 200 OK en 202 Accepted essentieel voor correcte API-ervaringen. Met HTTP 200 komt de reactie direct met het gewenste resultaat. Met HTTP 202 geef je aan: “We hebben je verzoek ontvangen en zijn ermee aan de slag gegaan, maar het resultaat is nog niet klaar.” Concreet:
: Direct eindresultaat, voltooid proces of succesvolle bevestiging met data in de body. : Verzoek ontvangen en in behandeling, geen direct eindresultaat.
Wanneer 202 kiezen boven 200?
Als de bewerking afhankelijk is van asynchrone processen of externe systemen, of wanneer de verwerking veel tijd kost, is HTTP 202 meestal de juiste keus. Het gebruik van HTTP 202 voorkomt time-outproblemen bij clients en biedt een duidelijke contractuele indicatie dat er later meer informatie beschikbaar komt. In addition, het voorkomt het risico dat clients denken dat het verzoek mislukt is als er korte wachttijden optreden.
Implementatiepatronen met HTTP 202
Er zijn verschillende ontwerp- en implementatiepatronen die passen bij HTTP 202. Hieronder beschrijven we de meest gebruikelijke en effectieve patronen, inclusief praktische aanbevelingen voor API-ontwerpers.
Asynchrone verwerking via wachtrijen
Een veelvoorkomend patroon is het plaatsen van een taak in een wachtrij zoals RabbitMQ, Kafka of een cloud-native queue. De API reageert onmiddellijk met HTTP 202 en geeft een taak-ID terug. Een aparte worker verwerkt de taak en slaat de voortgang en het eindresultaat op in een datastore. De client kan periodiek de voortgang opvragen via een status-endpoint.
Pollen versus webhooks
Het kiezen tussen polling en webhooks hangt af van de use-case en de gewenste responstijden:
: De client vraagt periodiek de status op. Eenvoudig te implementeren, maar kan onnodige requests genereren. - Webhooks: De server roept een door de client opgegeven callback-URL wanneer de status verandert. Minder netwerkverkeer en directe updates, maar vereist goede beveiliging en beschikbaarheid van de callback.
- Server-sent events of WebSocket: Voor real-time updates, maar complexer in implementatie en schaalbaarheid.
Langdurige taken met status-URL
Een andere veelvoorkomende aanpak is dat de initiale HTTP 202-response een status-URL bevat, waar de client later de status kan checken. Dit model werkt goed in combinatie met duidelijke statusobjecten zoals queued, in-progress, completed of failed.
Praktische voorbeelden van HTTP 202 in de praktijk
In de praktijk zie je HTTP 202 vaak in API’s voor bestanden, documents en reporting. Hieronder staan realistische scenarios en voorbeeld-requests die laten zien hoe http 202 en HTTP 202 zouden kunnen worden toegepast.
Voorbeeld: bestandsoverdracht met asynchrone verwerking
Een cliënt uploadt een bestand naar een API die vervolgens een transcoderingstaak start. De API retourneert HTTP 202 met een taak-ID en een link naar de voortgang:
POST /api/uploads Content-Type: multipart/form-data Authorization: Bearer--body-- --/body-- HTTP/1.1 202 Accepted Location: https://api.example.com/tasks/98765 Content-Type: application/json { "status": "accepted", "taskId": "98765", "progressUrl": "https://api.example.com/tasks/98765/status", "message": "Transcodering gestart. Gebruik de status-URL om voortgang te controleren." }
Voorbeeld: rapportgeneratie op aanvraag
Een gebruiker vraagt een gedetailleerd rapport aan. De server accepteert de aanvraag, geeft een tracking-ID en een URL voor status terug:
POST /api/reports Content-Type: application/json Authorization: Bearer{ "reportType": "annual", "filters": { "jaar": 2024 } } HTTP/1.1 202 Accepted Location: https://api.example.com/reports/abcd1234 Content-Type: application/json { "status": "accepted", "reportId": "abcd1234", "statusUrl": "https://api.example.com/reports/abcd1234/status", "estimatedCompletion": "2025-01-10T12:00:00Z" }
Voorbeeld: betalingstransactie in enforce async flows
Bij betaalprocessen kan HTTP 202 aangeven dat de transactie in behandeling is. De API biedt een statusfeed of callback zodra de betaling is goedgekeurd of geweigerd:
POST /api/payments
{
"amount": 99.95,
"currency": "EUR",
"method": "card"
}
HTTP/1.1 202 Accepted
Location: https://api.example.com/payments/tx88888
Content-Type: application/json
{
"status": "accepted",
"transactionId": "tx88888",
"statusUrl": "https://api.example.com/payments/tx88888/status"
}
Beveiliging, authenticatie en foutafhandeling voor HTTP 202
Beveiliging en correcte foutafhandeling zijn cruciaal bij het gebruik van HTTP 202. Enkele best practices:
- Beveilig de status- en voortgang-URL’s met authenticatie en autorisatie. Gebruik tokens, scopes en TLS.
- Geef duidelijke foutmeldingen terug als de initiële taak niet kan worden gestart. Bijvoorbeeld bij ongeldige invoer of ontbrekende dataset.
- Bied tijdslijnen en verwachte capaciteiten in de response. Dit helpt clients bij planning en gebruikerservaring.
- Beheer fouttoestanden zoals time-outs, failed-verwerkingen, en reprocessing-procedures via expliciete statuswaarden.
Best practices voor API-ontwerp met HTTP 202
Voor een robuuste en schaalbare API zijn er een aantal aanbevolen praktijken die het gebruik van HTTP 202 versterken. Hieronder vind je een checklist met concrete tips.
Maak duidelijke contracten rond voortgang en eindresultaat
Definieer expliciet wat de statuswaarden betekenen (queued, in-progress, completed, failed, cancelled) en hoe de voortgang wordt gerapporteerd. Documenteer welke velden in de response te verwachten zijn en welke headers relevant zijn (Location, Retry-After, etc.).
Zorg voor betrouwbare voortgangs-voorzieningen
Gebruik polling met een begrensde interval, of implementeer webhooks voor real-time updates. Zorg voor idempotente eindpunten zodat herhaalde polls of retries geen duplicaten veroorzaken.
Houd rekening met schaalbaarheid
Wanneer duizenden taken tegelijk worden verwerkt, zorg dan voor schaling van de workers en een robuuste datastore voor voortgang. Gebruik caching waar mogelijk voor voortgangsstatussen die vaak worden opgevraagd.
Heldere documentatie en voorbeeldtests
Publiceer duidelijke API-documentatie waarin HTTP 202 wordt aangestreept als de standaardreactie voor asynchrone operaties. Bied ook concrete testcases en curl-voorbeelden zodat integrators snel aan de slag kunnen.
Veelgestelde vragen over HTTP 202
We zetten enkele veelgestelde vragen uiteen met korte, heldere antwoorden.
Is HTTP 202 hetzelfde als HTTP 200?
Niet precies. HTTP 202 zegt expliciet dat verwerking aan de gang is en nog geen eindresultaat beschikbaar is. HTTP 200 impliceert meestal dat het antwoord direct het gewenste resultaat bevat.
Kan HTTP 202 zonder Location-header gebruikt worden?
Ja, maar dan moet er een andere, duidelijke mechanismus zijn om de voortgang op te vragen, zoals een status-endpoint in de body of via een gekoppelde status-URL in een aparte response. Location-header is de meest conventionele methode voor voorgenomen voortgang.
Welke informatie hoort in de body van een HTTP 202-response?
Het is gebruikelijk om ten minste de status van de taak, een taak-ID en een status-URL op te nemen. Ook een tijdsindicatie of een boodschap kan nuttig zijn voor de client.
Concreet: hoe implementeer je HTTP 202 in jouw project?
Om HTTP 202 effectief te implementeren, volg je deze stappen:
- Identificeer de lange- of asynchrone taken in jouw systeem die geen onmiddellijke uitkomst geven.
- Ontwerp een taak-ID- en voortgangsmodel (statusvelden, mogelijk retry-informatie).
- Implementeer een wachtrij of achtergrondwerkers die de taken afhandelen en de voortgang in een datastore bijhouden.
- Voeg een status-endpoint toe zodat clients de voortgang kunnen controleren, en overweeg webhooks voor efficiënte updates.
- Test uitgebreid met zowel success- als foutgevallen en documenteer de bevindingen.
Conclusie: HTTP 202 als krachtige bouwsteen voor moderne API’s
HTTP 202 is veel meer dan een simpele statuscode. Het is een sleutelelement in het ontwerp van robuuste, responsieve en schaalbare API’s die met asynchrone verwerking werken. Door duidelijk aan te geven dat een verzoek is ontvangen en in behandeling is, biedt HTTP 202 flexibiliteit en gebruiksvriendelijkheid voor ontwikkelaars en eindgebruikers alike. Of je nu kiest voor polling, webhooks of real-time updates via push-technologie, HTTP 202 geeft een heldere contractuele basis om lange taken te managen zonder de gebruiker in de kou te laten staan. Houd altijd rekening met duidelijke documentatie, beveiliging en foutafhandeling, zodat jouw toepassing niet alleen functioneel maar ook betrouwbaar en geliefd is bij integrators en eindgebruikers.
Samenvattend: belangrijkste kernpunten over HTTP 202
- HTTP 202 betekent: Accepted – verzoek ontvangen en in behandeling genomen.
- Gebruik het voor asynchrone of lange-taken workflows waar direct resultaat niet mogelijk is.
- Lever een duidelijke status-URL of voortgangsmechanisme zodat clients kunnen volgen.
- Beveilig, documenteer en test uitgebreid om robuuste integraties te garanderen.
- Verwerk 202 in combinatie met geschikte kanalen zoals polling, webhooks of real-time updates.
Extra: SEO-gericht gebruik van het sleutelwoord http 202 en varianten
Om de vindbaarheid op Google voor de keten http 202 te versterken, is het verstandig om varianten via natuurlijke integratie in de tekst te verwerken. Gebruik naast http 202 en HTTP 202 af en toe ook formuleringen zoals statuscode 202, Accepted-antwoord of 202 Accepted. Maak subkoppen die expliciet vermelden HTTP 202 en gerelateerde termen zodat zoekmachines duidelijke onderwerpen herkennen. Zo creëer je een evenwicht tussen hoogwaardig inhoudelijk schrijven en SEO-vriendelijke structuur, zonder de leeservaring te schaden.