Sie befinden sich hier:
» 
» 
01.10.2010

Formulare: Verwendung von POST und GET

Häufig wurde schon die Frage gestellt: Was ist eigentlich der Unterschied zwischen der POST- und GET-Methode und in welcher Situation verwendet man welche Variante?
Dies möchte ich an einem einfachen Formular erläutern:

<form name="testForm1" action="action.php" method="GET">
  <input type="text" name="Nachname" value="" />
  <input type="text" name="Vorname" value="" />
  <input type="submit" value="Senden" />
</form>

oder:

<form name="testForm2" action="action.php" method="POST">
  <input type="text" name="Nachname" value="" />
  <input type="text" name="Vorname" value="" />
  <input type="submit" value="Senden" />
</form>

In der GET-Variante werden die Eingaben nach dem Senden der Webadresse (URL) als Parameter angefügt. Wenn man z.B. als Nachname: "Mustermann" und als Vorname: "Max" eingegeben hat, sieht die URL nach dem Senden wie folgt aus:
http://www.beispiel.de/action.php?Nachname=Mustermann&Vorname=Max

Die Länge der URL ist browserspezifisch limitiert, d.h. bei längeren Eingaben, vielen Parametern etc. könnte man an die Grenze stoßen. In älteren Browsern liegt die Grenze bei ca. 2000 Zeichen.

In der POST-Variante werden die Inhalte nicht in der URL, sondern verdeckt weitergegeben, d.h. die URL sieht nach dem Senden wie folgt aus:
http://www.beispiel.de/action.php

Dies erweckt den Eindruck von Sicherheit, was aber falsch ist.
Man kann übergebene POST-Variablen genauso manipulieren, wie GET-Variablen.

Für beide Varianten gilt, dass die Variablen auf jeden Fall im empfangenden Script auf Konsistenz und Sinnhaltigkeit zu überprüfen sind. Man sollte im empfangenden Script auch nur jeweils die Variante verarbeiten, die man erwartet, d.h. wenn die Variablen mit POST gesendet werden, so wertet man auch nur die POST-Variablen aus.

In Formularen, in denen üblicherweise Eingaben anschließend aktiv verarbeitet werden, ist die POST-Variante zu bevorzugen.

Aber wozu dann GET?

Die GET-Variante eignet sich vornehmlich zur Navigation und für den lesenden Zugriff, d.h. für Seiteninhalte, die auf Basis einer übergebenen ID-Nummer oder wenigen Parametern, dynamisch aufgebaut werden. Sie wird meist in Verlinkungen verwendet und hat den Vorteil, dass diese Verlinkungen mit den GET-Parametern zusammen formularunabhängig weitergegeben oder als Lesezeichen abgespeichert werden können.

Autor: Mein Name ist Harry Kämpf und ich bin seit vielen Jahren als Projekt Manager im Webumfeld tätig. Auf diesen Erfahrungen basieren die Tipps zur Webseitengestaltung. Ich schreibe gern über Webthemen, nehme aktuelle Trends auf und gebe bei Bedarf kompetente Beratung. Mehr Infos können Sie auf ueber-mich.html nachlesen.

4