In Kürze
- Verwendung
GETfür safe andidempotentAnfragen
- Verwendung
POSTfür neither safe nor idempotentAnfragen
Im Detail
Es gibt für jeden einen richtigen Platz. Selbst wenn Sie sich nicht an RESTful- Prinzipien halten, können Sie viel über REST und die Funktionsweise eines ressourcenorientierten Ansatzes lernen.
Eine RESTful-Anwendung wird use GETsfür Operationen verwendet, die beides sind safe and idempotent.
Eine safeOperation ist eine Operation, die not change the dataangefordert wird.
Eine idempotentOperation ist eine Operation, bei der das Ergebnis be the sameunabhängig davon angezeigt wird , wie oft Sie es anfordern.
Es liegt auf der Hand, dass GETs, die für sichere Operationen verwendet werden, automatisch auch idempotent sind . In der Regel wird ein GET zum Abrufen einer Ressource (z. B. einer Frage und der zugehörigen Antworten zum Stapelüberlauf) oder zum Sammeln von Ressourcen verwendet.
Eine RESTful-App wird PUTsfür Operationen verwendet, die sind not safe but idempotent.
Ich weiß, dass die Frage GET und POST betraf, aber ich werde gleich zu POST zurückkehren.
In der Regel wird ein PUT zum Bearbeiten einer Ressource verwendet (z. B. Bearbeiten einer Frage oder einer Antwort zum Stapelüberlauf).
A POSTwürde für jede Operation verwendet, die ist neither safe or idempotent.
In der Regel wird ein POST verwendet, um eine neue Ressource zu erstellen, beispielsweise um eine NEUE SO-Frage zu erstellen (obwohl in einigen Designs auch hierfür ein PUT verwendet wird).
Wenn Sie den POST zweimal ausführen, werden am Ende ZWEI neue Fragen erstellt.
Es gibt auch eine DELETE-Operation, aber ich schätze, ich kann das dort lassen :)
Diskussion
In der Praxis unterstützen moderne Webbrowser GET und POST normalerweise nur zuverlässig (Sie können alle diese Vorgänge über Javascript-Aufrufe ausführen, aber in Bezug auf die Eingabe von Daten in Formulare und das Drücken von Senden haben Sie im Allgemeinen die beiden Optionen). In einer RESTful-Anwendung wird der POST häufig überschrieben, um auch die PUT- und DELETE-Aufrufe bereitzustellen.
Aber selbst wenn Sie nicht den RESTful-Prinzipien folgen, kann es hilfreich sein, GET zum Abrufen / Anzeigen von Informationen und POST zum Erstellen / Bearbeiten von Informationen zu verwenden.
Sie sollten GET niemals für eine Operation verwenden, die Daten ändert. Wenn eine Suchmaschine einen Link zu Ihrer bösen Operation oder den Lesezeichen des Kunden crawlt, kann dies zu großen Problemen führen.