Ist es sicher, die permanente Weiterleitung des HTTP-Status 308 zu verwenden?

11

Ist es sicher, den HTTP-Statuscode 308 Permanent Redirect ( Vorschlag ) in Serverantworten zu verwenden? Das Problem mit 301 Moved Permanently ist, dass es nur mit GET-Anforderungen funktioniert (um fair zu sein: POST wird in GET umgewandelt, was KEINE Option ist).

Der Statuscode ist in "RFC-Zeit" sehr neu. Was würden Sie also vorschlagen?

Was würde ein Browser tun, wenn er 308 nicht kennt? Würde es den Ort finden und 302 tun?

Burnersk
quelle
Noch neuer, als Sie zu erkennen scheinen; Es ist jetzt ein RFC .
Michael Hampton
1
Haben Sie den Abschnitt Überlegungen zur Bereitstellung gelesen ?
Håkan Lindqvist
308 ist kein Standard - es ist ein Vorschlag, der sich noch im experimentellen Stadium befindet. Browers sollten auf eine 300-Interpretation eines 301-399-Fehlers zurückgreifen, die sie nicht speziell verstehen.
Chris S
1
In welchem ​​Szenario würden Sie eine POST-Anfrage erwarten, die direkt an eine veraltete URL gesendet wird?
Skyhawk
1
@Skyhawk: Ich arbeite mit Offline-Funktionen von HTML5. Bei Kommentaren oder beim Erstellen neuer Beiträge hat sich die Ziel-URL möglicherweise aufgrund von Änderungen am Beitrag selbst in seinen Kategorien geändert.
Burnersk

Antworten:

4

Obwohl 308 jetzt ein Standard ist ( https://tools.ietf.org/html/rfc7538 ), ist es derzeit nicht sicher [Bearbeiten] (Stand: 3. April 2019), insbesondere für Desktop-Anwendungen, kann jedoch in einigen Fällen fast sicher sein bestimmte Regionen (z. B. Indien) oder für Anwendungen, die auf Tablets und mobile Geräte ausgerichtet sind.

Der Mangel an Sicherheit liegt daran, dass IE 11 unter Windows 7 und 8.1 dies nicht unterstützt. In IE 11 scheint die Site nur zu hängen. Glücklicherweise unterstützt der mit Windows 10 gelieferte IE dies, sodass nur gewartet werden muss, bis die allgemeine Bevölkerungszahl von Windows 7 abweicht (Win 7 wurde in den globalen Nutzungsstatistiken gerade erst von Win 10 übertroffen, Win 8 ist erheblich) weniger beliebt als beide) [Bearbeiten] oder Ihr Unternehmen trifft die Entscheidung, es nicht mehr zu unterstützen (was Sie ab dem 14. Januar 2020 sehr stark vertreten können, wenn Windows 7 sogar die langfristige Unterstützung verliert ).

Alle anderen modernen Browser unterstützen dies (Chrome, Firefox, Safari, Edge, Opera).

[Bearbeiten] Verwendungsstatistiken vom März 2019, um Ihre Entscheidung zu treffen:

  • 36,52% der Desktop-Benutzer verwenden noch Windows 7
  • 9,83% der Desktop-Benutzer waren im Internet Explorer; Da Win10 Edge so sehr vorangetrieben hat, würde ich davon ausgehen, dass die meisten dieser Benutzer Win 7 verwenden. Ref netmarketshare

Eine Entscheidung für die Verwendung von 308 würde sich also wahrscheinlich (meine Schätzung basiert auf den obigen Statistiken) auf 5 bis 9% der Desktop-Benutzer ab dieser Bearbeitung (04.03.2019) auswirken. Wenn Ihre Anwendung mehr auf Tablets / Mobilgeräte ausgerichtet ist, ist dieser Wert erheblich niedriger. Ebenso, wenn Ihre App speziell für den indischen Markt ist.

Hier können Sie testen, ob Ihr Browser 308 Weiterleitungen unterstützt: https://webdbg.com/test/308/

monty
quelle
Beachten Sie, dass sich dies von 307 unterscheidet. IE 11 unter Windows 7 unterstützt HTTP 307 ohne Probleme. (Warum?)
Franklin Yu
7

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308

Der RFC 7538-Vorschlag findet heute breite Unterstützung. Es ist sicher.

308 statt 301. 307 statt 302.

verschieben! = umleiten

Verschieben erinnert an eine bestimmte Adresse und / oder Datei, die verschoben wurde. Weiterleiten ist ein neuer Ort oder eine neue Adresse.

perroud
quelle
1
Derzeit (20. Februar 2018) ist es noch nicht sicher, da unter Windows 7 IE 11 verwendet wird, was dies immer noch nicht unterstützt.
Montag,
@monty was war das für eine nummer? was ist es jetzt
Robin Winslow
Bis März 2019 waren 36,52% der Desktop-Benutzer noch unter Windows 7 und 9,83% der Desktop-Benutzer waren im IE.
Montag,
2

Um dies zu beenden: Nein, es ist nicht sicher, diesen Statuscode zu verwenden. Siehe Kommentare für Details.

308 ist kein Standard - es ist ein Vorschlag, der sich noch im experimentellen Stadium befindet. Browers sollten auf eine 300-Interpretation eines 301-399-Fehlers zurückgreifen, die sie nicht speziell verstehen.

Einige Browser versagen bei diesem Statuscode einfach vollständig.

Burnersk
quelle
1
Diese Antwort ist veraltet. Ich glaube, dass der RFC für die Verwendung in modernen Browsern verfügbar und akzeptiert wurde . Developer.mozilla.org/en-US/docs/Web/HTTP/Status/308 . Wenn Sie jedoch Unterstützung von älteren Browsern benötigen, kann dies dennoch ein Problem sein!
Yahya Uddin
3
Es funktioniert nicht in IE11 unter Win8.1 und niedriger (es funktioniert unter Win10).
Bart Verkoeijen
tools.ietf.org/html/rfc7538 "Der Statuscode 308 des Hypertext Transfer Protocol (permanente Weiterleitung)" wurde im April 2015 veröffentlicht.
Patrick Mevzek