GET en POST zijn de twee meest gebruikte HTTP-verzoekmethoden. Doorgaans worden GET-verzoeken gebruikt om webpagina's op te vragen, terwijl POST wordt gebruikt om gegevens naar de webserver te verzenden, bijvoorbeeld via een webformulier.
Tip: hoewel ze HTTP-methoden worden genoemd, worden zowel GET als POST ook gebruikt in HTTPS.
Een van de belangrijke verschillen is dat alle parameters die zijn opgenomen in GET-verzoeken, zijn opgenomen in de URL zelf, terwijl parameters in POST-verzoeken deel uitmaken van de verzoektekst.
Een GET-verzoek-URL kan er bijvoorbeeld uitzien als "GET.php?parameter=value", terwijl de URL voor een POST-verzoek eruit zou zien als "POST.php" en vervolgens de "parameter=waarde" in de hoofdtekst van het verzoek zou hebben.
Een van de belangrijkste gevolgen hiervan is dat wanneer webservers logverzoeken doen, de gevraagde URL altijd wordt geregistreerd. Dus voor GET-verzoeken worden de parameters ook vastgelegd, in het geval van POST-verzoeken, hoewel de waarden niet worden vastgelegd omdat de hoofdtekst van het verzoek niet wordt vastgelegd. Dit is vooral belangrijk voor formulieren die gevoelige gegevens bevatten, zoals wachtwoorden of PII (Persoonlijk Identificeerbare Informatie), omdat het gebruik van POST betekent dat deze informatie niet wordt vastgelegd op webservers.
Andere verschillen tussen GET en POST zijn onder meer het feit dat GET-verzoeken kunnen worden gecached door de browser of caches van derden, GET-verzoeken zijn opgenomen in de browsergeschiedenis en kunnen worden gemarkeerd als bladwijzer. POST-verzoeken worden daarentegen nooit in de cache opgeslagen, worden niet opgeslagen in de browsergeschiedenis en kunnen niet worden gemarkeerd als bladwijzer.
Het is mogelijk om formulieren te configureren om een GET-verzoek te gebruiken om gegevens naar de webserver te sturen, maar dit is een slecht idee omdat al deze factoren een rol spelen. Het is vooral belangrijk voor gevoelige formulieren, zoals aanmeldingsformulieren, dat als dit verzoek werd vastgelegd, het wachtwoord van de gebruiker zou worden onthuld, en als het antwoord door een derde partij in de cache werd opgeslagen, zouden andere gebruikers kunnen inloggen op het gebruikersaccount.