GET vs. POST – die beiden wichtigsten HTTP-Requests im Vergleich

Bei modernen, interaktiv gestalteten Websites rufen die Clients – also die Browser – nicht bloß ein HTML-Dokument vom Server ab, sondern senden diesem oftmals auch Informationen wie die folgenden zu:

  • Den Text eines Suchbegriffs, den der User in das Suchfeld eingegeben hat
  • Die Inhalte eines ausgefüllten Formulars
  • Die Filter-Auswahl in einer Webshop-Ansicht
  • Die Sortierung einer Liste

Für die Übermittlung solcher Informationen an den Server stehen im HTTP-Protokoll verschiedene Anfragemethoden zur Verfügung. Die beiden wichtigsten davon sind GET und POST. Obwohl beide zum selben Resultat führen, unterscheiden sie sich trotzdem grundlegend voneinander. Lesen Sie hier, wo die Unterschiede liegen und wann welche Methode besser geeignet ist.

Tipp

Wenn Sie mehr über Anfragemethoden im Allgemeinen erfahren möchten, lesen Sie unseren Artikel über HTTP-Requests.

GET

Bei der GET-Methode werden die Daten, die an den Server gesendet werden sollen, direkt in die URL geschrieben. In Ihrem Browserfenster sieht dies dann so aus:

www.example.com/register.php?firstname=peter&name=miller&age=55&gender=male

Sämtliche vom Benutzer eingegebenen Informationen – sogenannte URL-Parameter – werden genauso offen übermittelt wie die URL selbst. Dies hat Vor- und Nachteile:

Vorteile

Die URL-Parameter können zusammen mit der Website-Adresse gespeichert werden. So können Sie eine Suchanfrage als Lesezeichen anlegen und später bequem wieder aufrufen. Die Seite lässt sich bei Bedarf auch über den Browserverlauf wieder zurückholen.

Praktisch ist dies beispielsweise für das regelmäßige Aufrufen eines Google-Maps-Kartenausschnitts oder für das Speichern von Webseiten mit bestimmten Filter- und Sortier-Einstellungen.

Nachteile

Der wichtigste Nachteil der GET-Methode ist der fehlende Datenschutz. Die mitgesendeten URL-Parameter sind nicht nur für jedermann in der Browser-Adresszeile sichtbar, sondern werden auch unverschlüsselt im Browserverlauf, im Cache und im Logfile des Servers abgelegt.

Ein zweiter Nachteil ist die beschränkte Kapazität: Je nach Webserver und Browser können nicht mehr als etwa 2.000 Zeichen in die URL eingegeben werden. URL-Parameter können außerdem nur ASCII-Zeichen (Buchstaben, Zahlen, Sonderzeichen usw.) enthalten, nicht aber binäre Daten wie Audiofiles oder Bilder.

POST

Die POST-Methode schreibt die URL-Parameter in den HTTP-Request für den Server. Sie sind damit für Benutzer nicht sichtbar. Der Umfang der POST-Anfragen ist unbeschränkt.

Vorteile

Wenn es gilt, sensible Daten an den Server zu übermitteln – z. B. das Anmeldeformular mit Benutzername und Passwort –, bietet die POST-Methode die erforderliche Diskretion. Die Daten werden weder im Cache gespeichert, noch erscheinen sie im Browserverlauf. Auch die Flexibilität spricht für POST: Damit können nicht nur kurze Texte, sondern Daten jeglichen Umfangs und Typs übermittelt werden, etwa Fotos oder Videos.

Nachteile

Wenn eine Webseite mit einem Formular im Browser aktualisiert wird (z. B. beim Betätigen der Schaltfläche „Zurück“), dann müssen die Formulardaten nochmals übermittelt werden – sicherlich haben Sie derartige Warnmeldungen bereits gesehen. Dabei besteht die Gefahr, dass die Daten versehentlich mehrmals gesendet werden, was etwa bei einem Bestellformular unerwünschte Doppelaufträge auslösen kann. Moderne Webshop-Programme können dies allerdings verhindern.

Ebenso können die Daten, die mit der POST-Methode übermittelt werden, nicht zusammen mit der URL als Lesezeichen gespeichert werden.

Vergleich GET vs. POST

  GET POST
Sichtbarkeit Für den Anwender in der Adresszeile sichtbar Für den Anwender unsichtbar
Lesezeichen und Browserverlauf URL-Parameter werden mit der URL zusammen gespeichert. URL wird ohne URL-Parameter gespeichert.
Cache und Server-Logfile Die URL-Parameter werden unverschlüsselt gespeichert. Die URL-Parameter werden nicht automatisch gespeichert.
Verhalten bei Browser-Aktualisierung / „Zurück“-Button Die URL-Parameter werden nicht erneut gesendet. Der Browser warnt, dass die Formulardaten erneut gesendet werden müssen.
Datentyp Nur ASCII-Zeichen Neben ASCII-Zeichen auch binäre Daten
Datenlänge Beschränkt auf maximale Länge der URL (2.048 Zeichen) Unbeschränkt

Wann welche Methode verwenden?

POST wird fast durchwegs bevorzugt, wenn der Anwender Daten oder Dateien an den Server übermitteln muss, beispielsweise bei Formularen oder beim Hochladen von Fotos.

GET eignet sich besonders gut für das Personalisieren von Websites: Die Sucheingaben, Filter-Einstellungen und Listensortierungen des Anwenders können zusammen mit der URL als Lesezeichen gespeichert werden, sodass beim nächsten Aufruf die Website exakt so aussieht, wie man es sich wünscht.

Eine einfache „Faustregel“ zum Schluss:

  • GET für Einstellungen an einer Website (Filter, Sortierungen, Sucheingaben usw.)
  • POST für das Übermitteln von Informationen und Daten des Anwenders

Auf dem Laufenden bleiben?

Jetzt für unseren Newsletter anmelden und gratis Online-Marketing Whitepaper für lokale Anbieter sichern!