HTTP 400: Alles wat je moet weten over de HTTP 400 Bad Request fout en hoe je hem oplost

De HTTP 400-fout, in zijn meest gebruikelijke Engelse benaming bekend als Bad Request, is een van de meest voorkomende fouten die je tegenkomt bij het surfen op het web of bij API-communicatie. In dit artikel duiken we grondig in wat HTTP 400 precies betekent, welke oorzaken er zijn, hoe je dit foutbericht kunt diagnosticeren en vooral hoe je het efficiënt oplost. We behandelen zowel client- als serverzijde oorzaken, geven praktische stappen, voorbeelden en best practices zodat je sneller weer verbinding maakt met de gewenste service.
Wat is HTTP 400 en waarom wordt het veroorzaakt?
HTTP 400 is een statuscode die aangeeft dat de server de aanvraag van de client niet kan verwerken vanwege een fout in de aanvraag zelf. In het Nederlands: een fout in de aanvraag betekent meestal dat de client iets verkeerd heeft gedaan. Het gaat hier om een bad request ofwel een ongeldige of onleesbare aanvraag. De server heeft dus geen probleem met de dienst op zich, maar met wat er naar de server gestuurd is.
In termen van zoekmachine-optimalisatie (SEO) en gebruikerservaring is het essentieel te begrijpen dat HTTP 400 vaak een symptoom is van malformed requests, ontbrekende of onjuiste parameters, of problemen met encoding en sessies. Een correcte implementatie van de HTTP-standaard respecteert de grenzen van URI’s, headers, cookies en payloads. Wanneer een van deze elementen niet aan de vereisten voldoet, kan de server besluiten de aanvraag te weigeren met een HTTP 400-fout.
Hoewel de basisdefinitie eenvoudig klinkt, bestaan er verschillende nuancevormen van HTTP 400 die je tegen kunt komen. In praktijk wordt vaak gesproken over “HTTP 400 Bad Request”, maar er zijn varianten en gerelateerde concepten die same root hebben: een fout in de clientaanvraag.
- De klassieke en meest voorkomende vorm. De aanvraag is syntactisch incorrect of ontoegankelijk vanwege client-gerelateerde fouten.
- Bij API’s kan de fout meer details expliciet maken, zoals ontoegankelijke JSON, ontbrekende velden, of onjuiste veldtypen. Soms bevat de body van het antwoord extra informatie over wat er misging.
- Een client-side fout die optreedt voordat de aanvraag ooit naar de server gaat, bijvoorbeeld due to incorrect encoding of queryparameters of ongeldige characters in URL’s.
Daarnaast zijn er verscheidene praktische termen die je tegenkomt wanneer je met HTTP 400 werkt, zoals “foute querystring”, “ongeldige header”, “URI te lang” of “cookie-gerelateerde fout”. Deze termen geven het concrete oorzakelijke pad weer dat leidt tot de 400-fout en helpen bij het gericht oplossen.
De meeste HTTP 400-fouten ontstaan aan de clientzijde. Hieronder staan de meest voorkomende oorzaken, met korte uitleg en concrete voorbeelden zodat je meteen aan de slag kunt.
Een veelvoorkomende oorzaak is een foutief gespelde URL, een onvolledige padnaam, of een onnodig complexe querystring. Bijvoorbeeld het vergeten URL-encoding van speciale tekens zoals spaties, ampersand (&), of plus (+) tekens kan leiden tot een onleesbare aanvraag. Ook parameters die gevolgd worden door ongeldige tekens of niet-ondersteunde karakters kunnen de server doen besluiten om een HTTP 400 terug te geven.
URL- en payload-tekens moeten correct gecodeerd zijn volgens percent-encoding (URL-encoding) of JSON-encoding, afhankelijk van de context. Onjuiste codering, zoals het ontbreken van een afsluitende quote in JSON of het niet-escape-en van speciale karakters in querystrings, veroorzaakt vaak een HTTP 400 Bad Request.
Een mis-match tussen de vereiste HTTP-methode (GET, POST, PUT, PATCH, DELETE) en wat de client verzendt, kan resulteren in een HTTP 400. Bijvoorbeeld een POST-aanvraag naar een endpoint dat alleen GET ondersteunt, of een POST met een ontbrekend bodyformaat zoals JSON wanneer de server JSON verwacht.
Headers spelen een cruciale rol bij de verwerking van een verzoek. Een ontbrekende of ongeldige Content-Type-header, Accept-header, of afwijkende Warte-indicatoren kunnen leiden tot HTTP 400. Ook overdreven lange header-velden (zoals cookies) kunnen de server doen besluiten de aanvraag af te wijzen.
Webservers hebben configuratielimieten voor de lengte van de request URI en de headers. Wanneer een URL of headers te lang zijn, geeft de server vaak HTTP 400 terug. Dit komt vaak voor bij misbruikte querystrings of uitgebreide cookies.
Een te grote payload (body) of een mismatch tussen de verwachte content-type en de getoonde data kan leiden tot HTTP 400. Bijvoorbeeld wanneer een server JSON verwacht maar een andere content-type wordt verzonden, of wanneer de payload groter is dan de ingestelde limiet.
Verouderde of corrupte cookies kunnen ertoe leiden dat de server de aanvraag niet correct kan verwerken en terugkeert met HTTP 400. Een corrupte cookie kan leiden tot parsing fouten in de header of de body van de aanvraag.
Proxies of load balancers tussen client en server kunnen de aanvraag wijzigen voordat deze de server bereikt. Dit kan leiden tot HTTP 400 als de proxy de request niet correct doorstuurt of als hij headers wijzigt op een wijze die de server niet kan interpreteren.
Naast clientgerelateerde oorzaken kan HTTP 400 ook aan de serverzijde ontstaan. De server kan bijvoorbeeld strengere validaties toepassen of foutmeldingen genereren als een verzoek op een bepaalde manier niet aan de interne regels voldoet.
Specifiek in webserverconfiguraties zoals Nginx, Apache of IIS kunnen limieten op de lengte van lijnen, headers of de body verkeerd zijn ingesteld. Een verkeerde instelling kan ertoe leiden dat legitieme aanvragen als foutief worden gemarkeerd en resulteren in HTTP 400.
Foute rewrite rules of een verkeerd geconfigureerde reverse proxy kunnen contextloze of onleesbare verzoeken opleveren. Daardoor worden aanvragen door de server niet herkend als geldige route, wat resulteert in HTTP 400.
Webapplicaties en frameworks zoals Express (Node.js), Django (Python) of Laravel (PHP) kunnen extra validaties opleggen. Als de applicatielaag een ongeldige payload, ontbrekende velden, of onverwachte dataformaten detecteert, kiest deze soms voor HTTP 400 om de client correct te informeren over de fout in de aanvraag.
Nu we de oorzaken kennen, is het tijd om concrete, uitvoerbare stappen te geven om HTTP 400 op te lossen. Hieronder vind je een gestructureerde aanpak voor zowel eindgebruikers als ontwikkelaars/operationele teams.
- Vernieuw de pagina en controleer de URL op typfouten, onnodige spaties en ontbrekende tekens.
- Probeer de pagina in een privé-/incognitomodus of met een leeg cachegeheugen en zonder cookies. Verwijder browsercookies die mogelijk verouderd zijn.
- Controleer of de browser of het programma dat de aanvraag doet correct is geconfigureerd (bijv. juiste HTTP-methode en correcte payload).
- Werk URL-encodering bij; vervang speciale tekens met de juiste percent-encoding. Gebruik geen onveilige karakters in querystrings.
- Indien je een API gebruikt, controleer het request-lichaam op correcte JSON-structuur of het juiste formaat en type data (Content-Type).
- Controleer serverlogbestanden voor foutmeldingen die verband houden met 400. Let op details zoals ontbrekende velden en ongeldige payloads.
- Inspecteer de clientzijde van de aanvraag: headerwaarden, cookie-informatie, URI-lengte en body-structuur. Gebruik eventueel curl of Postman om de aanvraag in een gecontroleerde omgeving te reproduceren.
- Beperkings- en validatieregels in frameworks: zorg ervoor dat validatieregels in de backend overeenkomen met wat de frontend verzendt en geef duidelijke fouten terug naar de cliënt.
- Controleer proxies en load balancers: kijk naar eventuele rewrite-regels of header-manipulatie die de aanvraag kunnen corrupten.
- Pas serverconfiguraties aan waar nodig, zoals grote header- of URI-limieten in Nginx (client_header_timeout, large_client_header_buffers) of Apache (LimitRequestLine, LimitRequestFieldSize, LimitRequestBody).
- Implementeer duidelijke en bruikbare foutafhandeling: geef zinnen die de gebruiker helpen om het probleem te begrijpen en te corrigeren. Vermijd te technische uitleg die verwarring veroorzaakt.
- Browser DevTools: netwerkverkeer inspecteren om te zien welke headers en payload er precies worden verzonden en waar het misgaat.
- cURL of HTTPie: reproduceer de verzoeken buiten de browser om en experimenteer met verschillende parameters, headers en payloads.
- API-documentatie controleren: controleer vereisten zoals vereiste velden, types, validatieregels en expected responses.
- Logging en tracing: versnel debugging met request-id, correlatie-id en gedetailleerde foutberichten op serverlogs.
- Validatie- en testomgevingen: voer regressietests uit bij wijzigingen in API-ontwerp of serverconfiguraties om te voorkomen dat validatieregels verschuiven.
Hier volgen enkele concrete scenario’s waarin HTTP 400 voorkomt en hoe je ze effectief oplost.
Een gebruiker opent een webshop en probeert te zoeken naar producten met een titel die speciale tekens bevat, zoals een accent op een letter of een ampersand. Als deze tekens niet correct zijn gecodeerd, ontvangt de server mogelijk HTTP 400. Oplossing: zorg voor correcte URL-encoding van alle query-parameters, bijvoorbeeld door de parameters via de browser of via een robuuste HTTP-bibliotheek te coderen.
Verouderde of beschadigde cookies kunnen leiden tot misinterpretatie bij de server. Een gebruiker krijgt HTTP 400 omdat de server de cookie parsing niet kan voltooien. Oplossing: helder instructies leveren aan de gebruiker om cookies te verwijderen of de client te laten vernieuwen via authenticatieflows.
Een API die JSON verwacht maar een aanvraag ontvangt met Content-Type: text/plain produceert mogelijk HTTP 400 met foutinformatie die aangeeft dat de payload niet kan worden verwerkt. Oplossing: zorg voor consistente Content-Type-headers en valide payloads.
In een bedrijfsnetwerk met proxy en caching kunnen lange cookies of lange querystrings leiden tot HTTP 400. Oplossing: minimaliseer cookie-lengte, gebruik tokens in plaats van lange querystrings, en controleer proxy-limieten en buffergrootte.
Preventie is beter dan genezen. Hieronder enkele best practices die helpen om HTTP 400 te voorkomen, zowel aan client- als aan serverzijde.
- Definieer duidelijke validatieregels aan de API-kant en zorg voor consistente foutberichten. Minimaliseer ambiguïteit in wat wel of niet toegestaan is.
- Beperk de lengte van headers en payloads waar mogelijk en houd rekening met proxy- en load-balancerlimieten.
- Implementeer robust encoding en decoding van URL’s en payloads, inclusief correcte handling van speciale tekens en escape-tekens.
- Hanteer consistente en duidelijke foutmeldingen met concrete suggesties voor de gebruiker, zodat snelle correcties mogelijk zijn.
- Test regelmatige regressies in foutafhandeling bij updates aan API of serverconfiguratie.
- Gebruik automatische validatie bij zowel frontend als backend om dat ontbrekende velden en verkeerde types vroeg te signaleren.
Hieronder vind je antwoorden op enkele veelgestelde vragen die vaak voorkomen bij HTTP 400-fouten.
HTTP 400 Bad Request betekent dat de server de aanvraag niet kan verwerken omdat er sprake is van een fout in de aanvraag zelf—zoals syntaxis, verkeerde encoding, of ontbrekende informatie. Het is geen serverfout maar een clientfout.
Nee. HTTP 404 geeft aan dat de gevraagde resource niet gevonden kan worden, terwijl HTTP 403 betekent dat de toegang tot de resource verboden is. HTTP 400 duidt op een fout in de aanvraag zelf, waardoor de server niet verder kan gaan.
Ja, in veel gevallen wel. Verouderde of corrupte cookies kunnen leiden tot HTTP 400. Het verwijderen van cookies of een schone herstart van de sessie kan de fout oplossen.
De ontwikkelaar kan de request-headers, body en URL inspecteren met debugging tools, logs doorzoeken op foutmeldingen en de validatieregels in de applicatie controleren. Het reproduceren van de fout in een testomgeving is vaak de sleutel tot snelle oplossing.
HTTP 400, oftewel Bad Request, is een veelvoorkomende maar beheersbare fout. Door de oorzaken systematisch te analyseren en zowel client- als serverzijde aanpassingen te doen, kun je deze fout snel oplossen en de betrouwbaarheid van je webapplicatie of API significant verbeteren. Een proactieve aanpak met duidelijke validatie, consistente foutmeldingen en gerichte tests voorkomt dat HTTP 400 zich onverwacht voordoet. Door de belangrijkste oorzaken te kennen – van verkeerde URL’s en encoding-problemen tot cookie-gerelateerde issues en proxy-invloeden – ben je klaar om efficiënt te reageren en de gebruiker weer snel een probleemloze ervaring te bieden.