HTTP als protocol
HTTP (HyperText Transfer Protocol) is het communicatieprotocol waarmee browsers, apps en servers gegevens uitwisselen over het web. Elke keer dat je een webpagina bezoekt, op een knop klikt of data invult in een formulier, sturen browser en server berichten naar elkaar volgens dezelfde vaste afspraak. Dat protocol beschrijft precies hoe een request (aanvraag) en een response (antwoord) eruitzien.
HTTP is een applicatieprotocol en bouwt op TCP: een HTTP-verbinding wordt opgezet over een TCP-verbinding, wat betrouwbare en geordende aflevering van data garandeert. Standaard werkt HTTP op poort 80; de beveiligde variant HTTPS op poort 443.
Client en server
HTTP werkt altijd tussen een client en een server:
- De client (browser, app,
curl, …) neemt het initiatief: hij stuurt een request. - De server (nginx, Apache, een cloud-dienst, …) wacht tot een request binnenkomt en stuurt een response terug.

Op elk request volgt exact één response. Nooit meer, nooit minder.
HTTP in het TCP/IP-model
HTTP bevindt zich in de applicatielaag, bovenop TCP (transportlaag) en IP (internetlaag). Zie het TCP/IP-model voor de volledige laagindeling.
| Laag | Protocol | Taak |
|---|---|---|
| Applicatie | HTTP/HTTPS | Verzoeken en antwoorden formuleren |
| Transport | TCP | Betrouwbare verbinding, pakketvolgorde |
| Internet | IP | Adressering en routering |
| Netwerktoegang | Ethernet / Wi-Fi | Fysieke overdracht |
Een domeinnaam wordt via DNS vertaald naar een IP-adres vóór de TCP-verbinding tot stand komt.
De meeste servers spreken tegenwoordig HTTP/2 of HTTP/3, maar de kernconcepten (het adres, wat je wil doen, het resultaat en de extra informatie) blijven dezelfde. Voor deze cursus volstaat HTTP/1.1 als referentiemodel.
Anatomie van een request
Een request bestaat altijd uit vier onderdelen:
| Onderdeel | Voorbeeld | Betekenis |
|---|---|---|
| Method | GET | Wat de client wil doen |
| URL | /posts/1 | Welke resource het betreft |
| Headers | Accept: application/json | Metadata over het request |
| Body | (vaak leeg bij GET) | De meegestuurde data |
Bekeken als tekst ziet een GET-request er zo uit:
GET /posts/1 HTTP/1.1
Host: jsonplaceholder.typicode.com
Accept: application/json
Anatomie van een response
Een response bestaat uit drie onderdelen:
| Onderdeel | Voorbeeld | Betekenis |
|---|---|---|
| Statuscode | 200 OK | Het resultaat van het request |
| Headers | Content-Type: application/json | Metadata over de response |
| Body | { "id": 1, "title": "..." } | De opgevraagde of bevestigde data |
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "sunt aut facere...",
"body": "quia et suscipit..."
}
Requests bekijken met curl
curl is een commandolijntool waarmee je zelf HTTP-requests stuurt. Met de -v (verbose) vlag toont curl zowel het request als de response:
curl -v https://jsonplaceholder.typicode.com/posts/1
> GET /posts/1 HTTP/1.1
> Host: jsonplaceholder.typicode.com
>
< HTTP/1.1 200 OK
< Content-Type: application/json
<
{ "id": 1, "title": "...", "body": "..." }
De regels met > zijn wat jij verstuurt, de regels met < zijn wat de server terugstuurt.
Een POST-request stuur je met -X POST, een Content-Type-header en een body via -d:
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H "Content-Type: application/json" \
-d '{"title": "Mijn post", "body": "Inhoud", "userId": 1}'
De server bevestigt de aangemaakte resource, meestal met een nieuw toegekend id:
{
"title": "Mijn post",
"body": "Inhoud",
"userId": 1,
"id": 101
}
Alles wat je met curl kan, kan ook visueel in Postman: methode kiezen, headers instellen, body invullen, en de response bekijken in een overzichtelijk paneel. Beide tools tonen exact hetzelfde HTTP-verkeer — enkel de weergave verschilt.
Dezelfde requests in DevTools
De Network tab van je browser (F12 → Network) toont elk request dat een pagina uitvoert. Klik een request aan om het te ontleden:
| Tabblad | Wat je er vindt |
|---|---|
| Headers | Method, URL, statuscode, request- en response headers |
| Payload | De body die verstuurd werd (bij POST/PUT) |
| Response | De body die ontvangen werd |
| Timing | Hoelang elke fase van het request duurde |
Alles wat curl toont in tekst, toont de Network tab visueel — het is dezelfde informatie.
- HTTP is een applicatieprotocol dat bovenop TCP draait, standaardpoort 80 (HTTP) en 443 (HTTPS).
- De client stuurt een request; de server stuurt een response terug — altijd één op één.
- Een request bestaat uit method, URL, headers en body; een response uit statuscode, headers en body.
curl -ven de browser Network tab tonen exact hetzelfde HTTP-verkeer, in tekst of visueel.
De volgende hoofdstukken werken elk onderdeel verder uit: eerst de URL zelf, dan de methoden, statuscodes, headers, JSON & REST en tot slot cookies, sessions & CORS.