4.5. Verwendung von HTTP-Methoden
4.5. Verwendung von HTTP-Methoden
Anwendungen, die HTTP verwenden, MÜSSEN der Semantik der von ihnen verwendeten Methoden entsprechen, wie in [HTTP] definiert. Sie KÖNNEN neue Methoden definieren, aber wenn sie dies tun, MÜSSEN sie diese gemäß dem Verfahren in [HTTP] Abschnitt 16.1 registrieren.
Neue Methoden sind selten; sie sind nur dann notwendig, wenn die Semantik keiner bestehenden Methode das Erforderliche ermöglicht. Normalerweise reicht es aus, einen neuen Content-Type für Request-Bodies und/oder eine Link-Relation in Antworten zu definieren, um die Semantik zu disambiguieren.
Beispielsweise wäre es unangemessen, eine neue RELOCATE-Methode zu definieren, wenn eine Anwendung eine Operation zum "Verschieben" einer Ressource definieren möchte, da PUT bereits verwendet werden kann, um den Zustand einer Ressource zu ändern (durch Bereitstellung einer neuen Darstellung mit dem aktualisierten Ort).
Bei der Spezifizierung der Verwendung von Methoden ist es wichtig, die verschiedenen Eigenschaften zu berücksichtigen, die sie haben, wie Sicherheit, Idempotenz und Cachefähigkeit.
Anwendungen SOLLTEN bestehende HTTP-Methoden verwenden, wo immer möglich. Insbesondere:
-
GET SOLLTE für Operationen verwendet werden, die sicher und cachefähig sind (gemäß [HTTP] Abschnitte 9.2.1 und 15.4).
-
HEAD SOLLTE überall dort unterstützt werden, wo GET unterstützt wird.
-
POST SOLLTE für Operationen verwendet werden, die weder sicher noch idempotent sind.
-
PUT SOLLTE für Operationen verwendet werden, die die beigefügte Darstellung unter der bereitgestellten URL speichern und jede bestehende Darstellung ersetzen.
-
DELETE SOLLTE für Operationen verwendet werden, die die durch die URL identifizierte Ressource entfernen.
Siehe Abschnitt 4.5.1 und Abschnitt 4.5.2 für zusätzliche Überlegungen bei der Verwendung von GET und OPTIONS.