Learning Center
Programmeertaal Python

HTTP-verzoeken begrijpen: structuur, methoden en voorbeelden

10 dec 2025
Hostman Team
Hostman Team

HTTP is de sleutel tot communicatie op het internet. Methoden van het HTTP-protocol stellen clients in staat verzoeken naar servers te sturen en servers om antwoorden terug te sturen. Elke website op het World Wide Web gebruikt HTTP-requests. Daarom is het essentieel om ze te begrijpen. Dit artikel behandelt het concept van HTTP-requests, hun structuur, veelgebruikte methoden en voorbeelden uit de praktijk. Dit helpt om te begrijpen hoe het web functioneert.

Wat is een HTTP-request?
Link kopiëren

Een HTTP-request is een bericht waarin een client – zoals een webbrowser – de host op de server om een specifieke resource vraagt. Clients gebruiken URL’s in HTTP-requests om aan te geven welke resources ze van de server willen opvragen.

Componenten van een HTTP-request
Link kopiëren

Elke HTTP-request bestaat uit drie hoofdcomponenten:

  • Request line

  • Headers

  • Message body

Request Line
Link kopiëren

De request line is de eerste regel van een HTTP-request. Deze initialiseert een actie op de server. De request line geeft aan welke HTTP-methode en HTTP-versie de client gebruikt. Naast de methode bevat de request line een URI of URL.

Voorbeeld van een request line:

GET /index.html HTTP/1.1

Headers
Link kopiëren

De headers volgen direct na de request line. Ze geven extra informatie van de client aan de server. Headers bevatten o.a. informatie over de host, de user agent, taalvoorkeuren en meer. De server gebruikt deze gegevens om de browser en het besturingssysteem van de client te identificeren. HTTP-headers zijn hoofdlettergevoelig, gevolgd door een dubbele punt en een waarde.

Voorbeeld van HTTP-request headers:

Host: example.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36

Accept: application/json, text/plain, */*

Accept-Language: en-US,en;q=0.9

Accept-Encoding: gzip, deflate, br

Connection: keep-alive

Message Body
Link kopiëren

Het message body-gedeelte wordt gebruikt om data naar de server te sturen. Het is optioneel: niet elke HTTP-request bevat een body. Of een body wordt gebruikt, hangt af van de HTTP-methode. Requests die een body bevatten gebruiken meestal POST, bijvoorbeeld om formulierdata te versturen. De server verwerkt deze data verder.

Veelgebruikte HTTP-methoden
Link kopiëren

Een HTTP-request verbindt de client met de server. Redenen hiervoor kunnen zijn:

  • een resource opvragen

  • nieuwe data versturen

  • bestaande data wijzigen

  • data verwijderen

Hieronder de belangrijkste en meest gebruikte methoden:

4.1 GET – Resources ophalen
Link kopiëren

De meest gebruikte HTTP-methode is GET, waarmee de server om specifieke data wordt gevraagd. Elke keer dat een gebruiker een webpagina opent, stuurt de browser een GET-request om de benodigde content op te halen.

Eigenschappen van GET:

  • cacheable

  • safe

  • idempotent

GET kan alleen bestaande data ophalen — het verandert niets aan de server.

POST – Data versturen
Link kopiëren

Wanneer een client data naar de server moet sturen (bijv. formulieren, uploads), wordt POST gebruikt.

De body bevat de verzonden gegevens. Meerdere POST-requests kunnen meerdere nieuwe resources creëren.

PUT – Resources bijwerken
Link kopiëren

PUT lijkt op POST, maar:

  • POST = nieuwe data creëren

  • PUT = bestaande data vervangen

De client moet de volledige nieuwe versie van de resource meesturen. PUT is idempotent – dezelfde request meerdere keren uitvoeren levert hetzelfde resultaat op.

DELETE – Resources verwijderen
Link kopiëren

DELETE laat de server weten dat een bepaalde resource moet worden verwijderd.

Als het verwijderen is gelukt, stuurt de server een bevestiging terug. DELETE is eveneens idempotent.

Wat is een HTTP-response?
Link kopiëren

Wanneer de server een antwoord terugstuurt op een HTTP-request, heet dat een HTTP-response. Net als een request bestaat deze uit drie delen:

  • Status line

  • Headers

  • Message body

Status Line
Link kopiëren

Deze bevat:

  • HTTP-versie

  • Statuscode

  • Statusbericht

Headers
Link kopiëren

Response headers bevatten extra informatie zoals:

  • datum en tijd

  • content-type

  • serverdetails

  • cache-instructies

Body
Link kopiëren

De body bevat de daadwerkelijke gegevens die naar de client worden teruggestuurd, zoals:

  • HTML

  • JSON

  • XML

  • afbeeldingen

  • bestanden

Statuscodes en hun betekenis
Link kopiëren

HTTP-statuscodes geven aan hoe de server de aanvraag heeft verwerkt. Ze bestaan uit drie cijfers, waarbij het eerste cijfer de categorie bepaalt:

Codegroep

Beschrijving

1xx

Informatief – verwerking gaat door

2xx

Succes – verzoek correct verwerkt

3xx

Redirect – extra acties vereist

4xx

Clientfout – probleem aan clientzijde

5xx

Serverfout – probleem aan serverzijde

HTTP-headers en hun belang
Link kopiëren

Headers bevatten cruciale informatie voor de communicatie tussen client en server. Ze zijn essentieel voor webfunctionaliteit.

Host-identificatie
Link kopiëren

Headers geven aan welk domein door de server wordt gehost.

Caching
Link kopiëren

Expires en Cache-Control bepalen hoe lang content wordt opgeslagen.

Cookiebeheer
Link kopiëren

Headers zoals Set-Cookie en Cookie houden gebruikerssessies bij.

Beveiliging
Link kopiëren

Headers zoals Authorization en Content-Security-Policy beschermen webapplicaties.

Response-controle
Link kopiëren

Headers geven aan of een request succesvol was of niet.

Praktische voorbeelden van HTTP-requests
Link kopiëren

De voorbeelden hieronder gebruiken Python en de requests-bibliotheek.

GET
Link kopiëren

import requests

response = requests.get("https://api.example.com/data",

                        params={"param1": "value1", "param2": "value2"})

print(response.status_code)

print(response.json())

POST
Link kopiëren

import requests

url = "https://api.example.com/users"

data = {

    "username": "newuser",

    "email": "newuser@example.com",

    "password": "securepassword"

}

response = requests.post(url, json=data)

if response.status_code == 201:

    print("User created successfully:", response.json())

else:

    print("Error:", response.status_code, response.text)

PUT
Link kopiëren

import requests

url = "https://api.example.com/users/123"

data = {

    "username": "updateduser",

    "email": "updateduser@example.com"

}

response = requests.put(url, json=data)

if response.status_code == 200:

    print("User updated successfully:", response.json())

else:

    print("Error:", response.status_code, response.text)

DELETE
Link kopiëren

import requests

url = "https://api.example.com/users/123"

response = requests.delete(url)

if response.status_code == 204:

    print("User deleted successfully.")

else:

    print("Error:", response.status_code, response.text)

Conclusie
Link kopiëren

HTTP-requests spelen een cruciale rol bij webinteracties. Daarom is het belangrijk om de verschillende methoden te kennen en te begrijpen hoe ze werken. Het kiezen van de juiste methode zorgt voor efficiënte communicatie tussen client en server en verbetert de prestaties van webapplicaties.