GET und POST sind die beiden am häufigsten verwendeten HTTP-Anforderungsmethoden. Normalerweise werden GET-Anforderungen verwendet, um Webseiten anzufordern, während POST verwendet wird, um Daten an den Webserver zu senden, z. B. über ein Webformular.
Tipp: Obwohl sie als HTTP-Methoden bezeichnet werden, werden sowohl GET als auch POST in HTTPS verwendet.
Einer der wichtigen Unterschiede besteht darin, dass alle Parameter, die in GET-Anfragen enthalten sind, in der URL selbst enthalten sind, während Parameter in POST-Anfragen Teil des Anfragetexts sind.
Zum Beispiel kann eine GET-Anfrage-URL wie „GET.php?parameter=value“ aussehen, wohingegen die URL für eine POST-Anfrage wie „POST.php“ aussehen würde und dann den „parameter=value“ im Anfragetext haben.
Eine der wichtigsten Auswirkungen davon ist, dass bei Log-Anfragen von Webservern immer die angeforderte URL protokolliert wird. Bei GET-Anfragen werden also auch die Parameter protokolliert, bei POST-Anfragen werden die Werte jedoch nicht protokolliert, da der Hauptteil der Anforderung nicht protokolliert wird. Dies ist besonders wichtig für Formulare, die sensible Daten wie Passwörter oder PII (persönlich identifizierbare Informationen) enthalten, da die Verwendung von POST bedeutet, dass diese Informationen nicht auf Webservern protokolliert werden.
Weitere Unterschiede zwischen GET und POST sind die Tatsache, dass GET-Anfragen vom Browser oder Caches von Drittanbietern zwischengespeichert werden können, GET-Anfragen in den Browserverlauf aufgenommen werden und mit einem Lesezeichen versehen werden können. POST-Anfragen werden dagegen nie zwischengespeichert, nicht im Browserverlauf gespeichert und können nicht mit einem Lesezeichen versehen werden.
Es ist möglich, Formulare so zu konfigurieren, dass eine GET-Anforderung verwendet wird, um Daten an den Webserver zu senden, aber dies ist keine gute Idee, da all diese Faktoren eine Rolle spielen. Bei sensiblen Formularen wie Anmeldeformularen ist dies besonders wichtig, da bei einer Protokollierung dieser Anforderung das Kennwort des Benutzers preisgegeben würde, und wenn die Antwort von einem Drittanbieter zwischengespeichert wurde, könnten sich andere Benutzer beim Konto des Benutzers anmelden.