In Kürze
- Verwendung
GET
für safe and
idempotent
Anfragen
- Verwendung
POST
für neither safe nor idempotent
Anfragen
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 GETs
für Operationen verwendet, die beides sind safe and idempotent
.
Eine safe
Operation ist eine Operation, die not change the data
angefordert wird.
Eine idempotent
Operation ist eine Operation, bei der das Ergebnis be the same
unabhä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 PUTs
fü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 POST
wü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.