Unterschied zwischen GET und POST

Beim Formular-Attribut „method“ haben wir die Wahl zwischen „get“ und „post“, je nachdem welches wir wählen, müssen wir im PHP Script auf die Variable „$_GET“ oder „$_POST“ zugreifen. Doch was ist der Unterschied zwischen den beiden?

GET wird in der URL angezeigt

Wenn wir ein Formular mit „get“ verschicken, wird in der URL-Zeile des Browser die Variablen + ihrem Wert angezeigt:

Diesen Wert kann der Benutzer manipulieren, allerdings ist $_POST kein Schutz dagegen, aber es sieht in den meisten Fällen „schöner“ aus, da die URL-Zeile nicht mit Variablen vollgepumpt ist.

GET ist begrenzt, POST nicht

Gerade wenn man ein Formularfeld hat, indem sehr sehr viele Daten reinkommen können (z.b. ein Blog-Artikel, ein Forumbeitrag, ein Wikipedia-Artikel) muss man POST verwenden, da die get-Methode begrenzt ist. Bzw eigentlich ist nicht „get“ begrenzt, sondern die Url-Zeile des Browsers. Je nach Browser hat man eine maximale Länge um 1024 Zeichen und für Artikel ist das in der Regel nicht ausreichend (für Twitter-Nachrichten schon ;) )

Vor- und Nachteile von post und get

Hier nochmal die Vor- und Nachteile zusammengefasst:

  • Bei GET sieht der User, welche Daten übergeben werden (kann man als Vorteil oder als Nachteil sehen)
  • Bei GET ist die Länge begrenzt, bei POST nicht
  • Die Ergebnisseite eines GET-Formulars kann man bookmarken, da alle nötigen Informationen in der URL enthalten sind
  • Die Ergebnisseite eines POST-Formulars kann man weder bookmarken noch im Browser aktualisieren, da die Daten nicht mehr zur Verfügung stehen
  • File-Upload ist nur mit POST möglich

Quelle

hier geht's weiter...



Feedback Formular