Eine Übersicht über 301
, 302
und307
Die RFC 7231 , die Stromreferenz für die Semantik und den Inhalt der HTTP / 1.1 - Protokolls, definiert den 301
(fest verschoben) und 302
(gefunden) Statuscode, der die Anforderung von Verfahren erlaubt geändert werden , POST
um GET
. Diese Spezifikation definiert auch den 307
Statuscode (Temporäre Umleitung), mit dem die Anforderungsmethode nicht von POST
nach geändert werden kann GET
.
Weitere Details finden Sie unten:
6.4.2. 301 Dauerhaft verschoben
Der 301
Statuscode (permanent verschoben) gibt an, dass der Zielressource ein neuer permanenter URI zugewiesen wurde und alle zukünftigen Verweise auf diese Ressource einen der beigefügten URIs verwenden sollten. [...]
Hinweis: Aus historischen Gründen kann ein Benutzeragent die Anforderungsmethode für die nachfolgende Anforderung von POST
auf ändern GET
. Wenn dieses Verhalten unerwünscht ist, 307
kann stattdessen der Statuscode (Temporäre Umleitung) verwendet werden.
6.4.3. 302 gefunden
Der 302
Statuscode (Gefunden) gibt an, dass sich die Zielressource vorübergehend unter einem anderen URI befindet. Da die Umleitung gelegentlich geändert werden kann, sollte der Client den effektiven Anforderungs-URI weiterhin für zukünftige Anforderungen verwenden. [...]
Hinweis: Aus historischen Gründen kann ein Benutzeragent die Anforderungsmethode für die nachfolgende Anforderung von POST
auf ändern GET
. Wenn dieses Verhalten unerwünscht ist, 307
kann stattdessen der Statuscode (Temporäre Umleitung) verwendet werden.
6.4.7. 307 Temporäre Weiterleitung
Der 307
Statuscode (Temporäre Umleitung) gibt an, dass sich die Zielressource vorübergehend unter einem anderen URI befindet und der Benutzeragent die Anforderungsmethode NICHT ändern darf, wenn er eine automatische Umleitung zu diesem URI durchführt. Da sich die Umleitung im Laufe der Zeit ändern kann, sollte der Client weiterhin den ursprünglichen effektiven Anforderungs-URI für zukünftige Anforderungen verwenden. [...]
Hinweis: Dieser Statuscode ähnelt 302
(Gefunden), mit der Ausnahme, dass die Anforderungsmethode nicht von POST
auf geändert werden kann GET
. Diese Spezifikation definiert kein gleichwertiges Gegenstück für 301
(dauerhaft verschoben) ( RFC 7238 definiert jedoch den Statuscode 308
(permanente Umleitung) für diesen Zweck).
Der Bedarf an 308
Der RFC 7238 wurde erstellt, um den 308
Statuscode (Permanent Redirect) zu definieren, der (Permanent 301
verschoben) ähnlich ist, jedoch keine Änderung der Anforderungsmethode von POST
nach zulässt GET
.
Der 308
Statuscode wird jetzt vom RFC 7538 definiert (der den RFC 7238 überholt hat ).
3. 308 Permanente Weiterleitung
Der 308
Statuscode (Permanent Redirect) gibt an, dass der Zielressource ein neuer permanenter URI zugewiesen wurde und alle zukünftigen Verweise auf diese Ressource einen der beiliegenden URIs verwenden sollten. Clients mit Linkbearbeitungsfunktionen sollten Verweise auf den effektiven Anforderungs-URI nach Möglichkeit automatisch mit einem oder mehreren der neuen vom Server gesendeten Verweise verknüpfen. [...]
Hinweis: Dieser Statuscode ähnelt 301
(dauerhaft verschoben), mit der Ausnahme, dass die Anforderungsmethode nicht von POST
auf geändert werden kann
GET
.
Se wir haben das folgende:
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn't allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
Auswahl des am besten geeigneten Statuscodes
Michael Kropat hat eine Reihe von Entscheidungsdiagrammen zusammengestellt , mit deren Hilfe der beste Statuscode für jede Situation ermittelt werden kann. Siehe folgende für 2xx
und 3xx
Statuscodes: