GET versus POST: wanneer gebruikt u welke?
Begrijp het verschil tussen HTTP GET en POST in PHP.
GET versus POST: wanneer gebruikt u welke? is een gratis PHP Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject PHP Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus PHP Academy bevat in totaal 4 lessen.
HTTP-methoden in web-PHP
Wanneer een browser een HTML-formulier verzendt, gebruikt deze de HTTP-methode GET of POST. PHP vangt de verzonden gegevens op via superglobale variabelen:
$_GET— gegevens die aan de URL zijn toegevoegd$_POST— gegevens in de aanvraagbody
De GET-methode
GET voegt formuliergegevens als querystringparameters aan de URL toe:
<!-- HTML form -->
<form method="GET" action="search.php">
<input name="query" type="text">
<button type="submit">Search</button>
</form>
<!-- URL becomes: search.php?query=php+tutorial -->
<?php
$q = $_GET['query'] ?? '';
echo 'You searched for: ' . htmlspecialchars($q);De POST-methode
POST verzendt gegevens in de HTTP-aanvraagbody — ze zijn niet zichtbaar in de URL:
<!-- HTML form -->
<form method="POST" action="login.php">
<input name="email" type="email">
<input name="password" type="password">
<button type="submit">Log In</button>
</form>
<?php
$email = $_POST['email'] ?? '';
$password = $_POST['password'] ?? '';Wanneer gebruik je GET
Gebruik GET wanneer:
- De aanvraag idempotent is (geen neveneffecten heeft)
- Gegevens in de URL mogen staan — zoekopdrachten, filters, paginering
- Je URL's wilt kunnen opslaan als bladwijzer of delen
- De gegevens niet gevoelig zijn
Wanneer gebruik je POST
Gebruik POST wanneer:
- De aanvraag de serverstatus wijzigt (maken, bijwerken, verwijderen)
- De gegevens gevoelig zijn (wachtwoorden, persoonlijke gegevens)
- Je grote hoeveelheden gegevens verzendt (bestanden, lange tekst)
- Je niet wilt dat browsers of proxyservers de gegevens in de cache opslaan
Lengtebeperkingen van GET
GET-aanvragen hebben beperkingen voor de URL-lengte (in de praktijk meestal ongeveer 2000 tekens). POST heeft geen praktische limiet, behalve de configuratie van de server:
<?php
// php.ini settings for POST limits:
// post_max_size = 8M (total POST body size)
// upload_max_filesize = 2M
// Check current limits at runtime:
echo ini_get('post_max_size'); // 8M
echo ini_get('upload_max_filesize'); // 2MDe superglobale variabele $_REQUEST
$_REQUEST voegt $_GET, $_POST en $_COOKIE samen. Handig, maar minder duidelijk wat de gegevensbron is:
<?php
// Works for both GET and POST but is ambiguous
$name = $_REQUEST['name'] ?? '';
// Better: be explicit about the expected method
$name = match($_SERVER['REQUEST_METHOD']) {
'GET' => $_GET['name'] ?? '',
'POST' => $_POST['name'] ?? '',
default => '',
};De aanvraagmethode controleren
Controleer altijd de aanvraagmethode voordat je formuliergegevens verwerkt:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
if (!empty($name)) {
echo 'Hello, ' . htmlspecialchars($name);
}
} else {
// Show empty form
}HTTPS en gegevensbeveiliging
Zelfs met POST zijn gegevens zichtbaar als platte tekst, tenzij je HTTPS gebruikt. Belangrijke beveiligingsregels:
- Gebruik in productie altijd HTTPS
- Verzend nooit wachtwoorden via GET
- POST via HTTP is nog steeds onveilig — HTTPS versleutelt ook de aanvraagbody
Doorsturen na POST (PRG-patroon)
Stuur na een geslaagde POST door naar een GET-aanvraag om dubbele verzendingen bij het vernieuwen te voorkomen:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Process the form...
$id = saveToDatabase($_POST);
// Post-Redirect-Get (PRG) pattern
header('Location: /success.php?id=' . $id);
exit;
}Multipart-formulieren voor bestandsuploads
Om bestanden te uploaden moet het formulier met POST enctype="multipart/form-data" gebruiken:
<!-- Required for file uploads -->
<form method="POST" action="upload.php"
enctype="multipart/form-data">
<input type="file" name="avatar">
<button type="submit">Upload</button>
</form>
<?php
$file = $_FILES['avatar'];
echo $file['name']; // original filenameKorte controle
Welke HTTP-methode moet je gebruiken wanneer je een loginformulier met gebruikersnaam en wachtwoord verzendt?
Samenvatting: GET versus POST
Belangrijkste verschillen:
- GET — in de URL, op te slaan als bladwijzer, geen neveneffecten, beperkte grootte
- POST — in de aanvraagbody, voor gevoelige gegevens, geen URL-limiet
- Gebruik altijd HTTPS om zowel GET- als POST-gegevens te beschermen
- Controleer
$_SERVER['REQUEST_METHOD']voordat je gegevens verwerkt - Pas het PRG-patroon toe om dubbele POST-verzendingen te voorkomen
Leer PHP met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 49
- Lessen
- 195
Veelgestelde vragen
Is de les “GET versus POST: wanneer gebruikt u welke?” gratis?
Ja — de volledige tekst van “GET versus POST: wanneer gebruikt u welke?” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus PHP Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus PHP Academy bevat in totaal 4 lessen.
Wat leer ik in “GET versus POST: wanneer gebruikt u welke?”?
Begrijp het verschil tussen HTTP GET en POST in PHP. Je oefent met PHP Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met PHP Academy te beginnen?
Ervaring vooraf is niet nodig. PHP Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “GET versus POST: wanneer gebruikt u welke?”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over PHP Academy?
Ja. Elke les over PHP Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- GET versus POST: wanneer gebruikt u welke?
- Formuliergegevens lezen met superglobals
- Technieken voor invoervalidatie
- Gebruikersinvoer saneren