Frage

Ich erstelle einen RESTful-Webdienst, der über mehrere URIs für eine seiner Ressourcen verfügt, da es mehr als eine eindeutige Kennung gibt.Sollte der Server auf eine GET-Anfrage nach einem alternativen URI antworten, indem er die Ressource zurückgibt, oder sollte ich eine HTTP 3xx-Umleitung an den kanonischen URI senden?Ist HTTP 303 (siehe auch) die am besten geeignete Weiterleitung?

Klärung:Die HTTP-Spezifikation macht deutlich, dass die Wahl der Weiterleitung davon abhängt, welchen URI zukünftige Anfragen verwenden sollen.In meiner Anwendung ist der „kanonische“ URI die stabilste Alternative;Ein alternativer URI verweist immer auf denselben kanonischen URI oder wird ungültig.

War es hilfreich?

Lösung

Ich persönlich würde lieber dafür plädieren, die Ressource zurückzugeben, als mich mit einer Weiterleitung herumzuschlagen, obwohl ich vermute, dass das nur daran liegt, dass mein Unterbewusstsein mir sagt, dass Weiterleitungen langsamer sind.

Wenn Sie sich jedoch für die Verwendung einer Weiterleitung entscheiden würden, würde ich denken, dass eine 302 oder 307 besser geeignet ist als eine 303, obwohl die w3.org enthält Einzelheiten zu den verschiedenen Weiterleitungscodes, die Sie verwenden können.

Andere Tipps

Unter W3Cs Architextur des World Wide Web, Band Eins, gibt es einen Abschnitt über URI-Aliase (Abschnitt 2.3.1), in dem es heißt:

„Wenn ein URI-Alias ​​zur allgemeinen Währung wird, sollte der URI-Besitzer Protokolltechniken wie serverseitige Weiterleitungen verwenden, um die beiden Ressourcen miteinander in Beziehung zu setzen.Die Community profitiert davon, wenn der URI-Eigentümer die Umleitung eines Alias-URI zum entsprechenden „offiziellen“ URI unterstützt.Weitere Informationen zur Umleitung finden Sie in Abschnitt 10.3, Umleitung RFC2616.Siehe auch CHIPS für eine Diskussion einiger Best Practices für Serveradministratoren.“

Für das, was es wert ist, würde ich eine 302-Weiterleitung empfehlen.

Die Antwort von Ubiguchi hatte alles, was ich brauchte, außer dass ich jetzt denke, dass eine Weiterleitung über den Link zum HTTP 1.1-Spezifikationsabschnitt zu Antwortcodes der richtige Weg ist.Es stellt sich heraus, dass ich tatsächlich eine 301-Weiterleitung benötige, da der URI, zu dem ich umleite, „korrekter“ und stabiler ist und daher für zukünftige Anfragen verwendet werden sollte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top