Mathias Bigge: wann POST wann GET

Beitrag lesen

Hi Kai,

die Kontroverse über POST und GET finde ich interessant, aber auch etwas kurzsichtig. Ich bin nicht der große HTTP-Experte, aber ein paar Aspekte wage ich doch einmal aus meiner Sicht anzusprechen. Vielleicht ergänzt oder korrigiert mich mal einer von den Experten...

1. Illusionen über die Sicherheit von POST

Da jeder DAU per GET versandte Informationen lesen und ändern kann, halten einige Entwickler POST prinzipiell für sicherer. Aber auch mit POST übergebene Daten sind mit mäßigem Aufwand manipulierbar.

2. Unterschiede

Bei POST lässt sich eine versehentliche Wiederholung eines Requests besser, wenn auch nicht zuverlässig vermeiden. Normalerweise sollte man GET vor allem für Aufrufe verwenden, bei denen keine Daten auf dem Server verändert werden, so dass der mehrfache Aufruf der gleichen Ressource keine unangenehmen Effekte erzeugt. Oft werden GET-Requests benutzt, wenn ein Caching erwünscht ist.

3. Begegnungen von POST und GET

Erhält ein POST-Request eine 301 (Moved Permanently) oder 303 (See Other) Status-Antowrt und damit eine neue Location, kann, im zweiten Fall sollte ein automatischer Wechsel von POST nach GET erfolgen. Insofern sollte ein CGI-Script in den meisten Fällen beide Requesttypen verarbeiten können.

POST-Requests können auch an URLs übergeben werden, die einen Query-String enthalten, so dass man eventuell auf beide Datenquellen zugreifen will oder muss.

Viele Grüße
Mathias Bigge