409 Stimmen

Wann verwenden Sie POST und wann GET?

Soweit ich das beurteilen kann, gibt es drei Kategorien:

  1. Verwenden Sie niemals GET und verwenden POST
  2. Verwenden Sie niemals POST und verwenden GET
  3. Es spielt keine Rolle, welche Sie verwenden.

Liege ich mit der Annahme dieser drei Fälle richtig? Wenn ja, was sind einige Beispiele für jeden Fall?

15voto

Mark Byers Punkte 761508

Abgesehen von den unterschiedlichen Längenbeschränkungen in vielen Webbrowsern gibt es auch einen semantischen Unterschied. GETs sind insofern "sicher", als es sich um reine Leseoperationen handelt, die den Zustand des Servers nicht verändern. POSTs ändern in der Regel den Zustand und geben bei der Wiedervorlage eine Warnung aus. Die Web-Crawler von Suchmaschinen können GETs durchführen, sollten aber niemals POSTs durchführen.

Verwenden Sie GET, wenn Sie Daten lesen wollen, ohne den Status zu ändern, und POST, wenn Sie den Status auf dem Server aktualisieren wollen.

8voto

ceejayoz Punkte 170567

Ein praktischer Unterschied besteht darin, dass Browser und Webserver die Anzahl der Zeichen, die eine URL enthalten kann, begrenzen. Das ist von Anwendung zu Anwendung unterschiedlich, aber es ist sicherlich möglich, diese Grenze zu überschreiten, wenn Sie textarea s in Ihren Formularen.

Eine weitere Schwierigkeit bei GETs: Sie werden von Suchmaschinen und anderen automatischen Systemen indiziert. Google hatte einmal ein Produkt, das Links auf der angezeigten Seite vorindexierte, so dass sie schneller geladen wurden, wenn Sie auf diese Links klickten. Es verursachte Haupt Verwüstung auf Websites, die Links enthielten wie delete.php?id=1 - Menschen verloren ihre gesamten Standorte.

8voto

TonyLa Punkte 746

Meine allgemeine Faustregel ist, Get zu verwenden, wenn Sie Anforderungen an den Server, die nicht gehen, um Zustand zu ändern sind. Posts sind für Anfragen an den Server reserviert, die den Zustand verändern.

7voto

Kyle Cronin Punkte 74993

Verwenden Sie GET, wenn Sie möchten, dass die URL den Zustand der Seite widerspiegelt. Dies ist nützlich für die Anzeige dynamisch generierter Seiten, wie die hier gezeigten. POST sollte in einem Formular verwendet werden, um Daten zu übermitteln, z. B. wenn ich auf die Schaltfläche "Post Your Answer" klicke. Es erzeugt auch eine sauberere URL, da es keine Parameterzeichenfolge nach dem Pfad erzeugt.

6voto

davenpcj Punkte 12248

Da es sich bei GETs um reine URLs handelt, können sie vom Webbrowser zwischengespeichert werden und eignen sich besser für Dinge wie konsistent generierte Bilder. (Legen Sie eine Verfallszeit fest)

Ein Beispiel von der Gravatar-Seite: http://www.gravatar.com/avatar/4c3be63a4c2f539b013787725dfce802?d=monsterid

GET kann eine geringfügig bessere Leistung erbringen, da einige Webserver POST-Inhalte in eine temporäre Datei schreiben, bevor sie den Handler aufrufen.

Ein weiterer wichtiger Punkt ist die Größenbeschränkung. GETs sind durch die Größe der URL begrenzt, standardmäßig 1024 Bytes, obwohl die Browser mehr unterstützen können.

Für die Übertragung von mehr Daten sollte ein POST verwendet werden, um eine bessere Browserkompatibilität zu erreichen.

Selbst eine Unterschreitung dieser Grenze ist problematisch, da, wie ein anderer Poster schrieb, alles in der URL in anderen Teilen der Benutzeroberfläche des Browsers, z. B. im Verlauf, landen könnte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X