„Danke fürs Posten. Bitte stehen Sie bereit, während Sie umgeleitet werden. “ Erforderlich?

11

Vielen Dank für die Veröffentlichung. Bitte warten Sie, während Sie umgeleitet werden.

Wenn Sie nicht automatisch umgeleitet werden, klicken Sie bitte hier.

Mit solchen Nachrichten sind Sie wahrscheinlich vertraut, insbesondere wenn Sie in den 90er oder frühen 2000er Jahren das Internet nutzen. In meinen eigenen Projekten habe ich nie einen Grund gefunden, den Benutzer 2-3 Sekunden warten zu lassen, während er beispielsweise nach der Registrierung oder dem Posten von Informationen umgeleitet wird. Aber dieses Muster tritt immer wieder auf, selbst in populärer Web-Software wie PHPBB.

Meine Frage ist, hat die Umleitung noch einen Platz / Bedarf in der modernen (Ajaxy-) Webentwicklung? Gibt es Situationen, die eine solche Umleitung unbedingt erfordern und den Benutzer letztendlich nerven, und was sind die technischen Gründe dafür ? Warum nicht einfach sofort umleiten, wenn eine Umleitung erforderlich ist?

Lotus Notes
quelle
Nur eine Vermutung: Vielleicht hängt es irgendwie damit zusammen, dass geskriptete Aktionen oder Bots verhindert werden? Es gibt jedoch bessere Methoden, um dies zu tun (Captchas usw.).
Aufgrund einer Benutzeranfrage habe ich meine Installation von PHPBB so geändert, dass sie sofort umgeleitet wird. Es dauerte nur ein paar Zeilenwechsel und funktioniert perfekt.
André Paramés
@Martin: Möglicherweise, aber wenn ja, ist es völlig falsch, da jeder Bot wie jeder Browser Weiterleitungen folgen kann (insbesondere wenn es einen Location-Header gibt, wie in PHPBB).
André Paramés

Antworten:

3

Gibt es Situationen, die eine solche Umleitung unbedingt erfordern und den Benutzer letztendlich nerven, und was sind die technischen Gründe dafür?

Die häufigste Absicht (im Allgemeinen bei einer Anforderung, die einen neuen Datensatz in einer Datenbank erstellt, einen Zahlungsvorgang verarbeitet usw.) ist die Verhinderung doppelter Anforderungen, falls der Benutzer auf die Schaltfläche "Aktualisieren" klickt und die Anforderung erneut sendet.

Hat die Umleitung noch einen Platz / Bedarf in der modernen (Ajaxy-) Webentwicklung?

Wenn Sie es schaffen, Benutzern mit deaktiviertem Javascript mitzuteilen, dass ihre Anforderungen ignoriert oder möglicherweise falsch behandelt werden (die Meldung "Nicht mehr als einmal auf Senden klicken!", Wird Ihnen in den Sinn kommen), ist dies sicher kein großer Aufwand, um diese skurrilen Probleme zu unterstützen JS-deaktivierte Benutzer und stellen sicher, dass die Abrechnungsabteilung nicht gelegentlich Beschwerden über die doppelte Abrechnung sieht, sodass eine Umleitung in vielen Schnittstellen immer noch implementiert ist.

Warum nicht einfach sofort umleiten, wenn eine Umleitung erforderlich ist?

Die Weiterleitung sollte sofort erfolgen, wenn das Ziel darin besteht, das Übermitteln mehrerer Formulare zu verhindern. Bei zeitgesteuerten Weiterleitungen sind sie möglicherweise auf träge Server ausgerichtet, haben eine sitzungsbasierte Sperre nicht berücksichtigt oder versuchen dies ein esoterischeres Problem lösen.

danlefree
quelle
"ist die Verhinderung von doppelten Anforderungen" --- die stille Standortumleitung tut dies ebenfalls. "Die Weiterleitung sollte sofort ausgegeben werden, wenn das Ziel darin besteht, das Senden mehrerer Formulare zu verhindern" --- sollte dies nicht tun, da F5auf der Stand bySeite auch das erneute Senden von Posts verursacht wird.
Zerkms
@zerkms - Ich schlage eine Weiterleitung an einen neuen Ort vor, bevor ein Antworttext gesendet wird (dh keine "
Standby
5

Erstens werden nicht alle Browser umgeleitet, wenn ein Standort-Header angegeben wird. Zweitens leiten nicht alle Browser mit Javascript um, da es deaktiviert ist. Drittens unterstützen nicht alle Browser die Meta-Refresh-Tags. Jeder dieser Fälle ist wahrscheinlich sehr selten, daher spielt es wahrscheinlich keine Rolle. Aber selbst wenn dies der Fall ist, können Sie alle diese Methoden, denke ich, überlappen.

Die Art und Weise, wie die PHPBB-Seiten dies tun (wartet 5 Sekunden oder so), wird überhaupt nicht benötigt. Es sollte sofort umgeleitet werden. Wenn dies nicht der Fall ist, wird nach dem Senden der Header die HTML-Seite (mit Meta-Refresh und Javascript sowie Text mit einem Link) angezeigt. Es gibt fast keine Chance, dass diese Seite tatsächlich von einem normalen Browser angezeigt wird, wenn sie richtig programmiert ist.

Joe Phillips
quelle
"Erstens werden nicht alle Browser umgeleitet, wenn ein Standort-Header angegeben wird" [Zitat erforderlich]
Jon Cram
@ Jon Cram: Technisch gesehen können Web-Proxys und Erweiterungen den Speicherort-Header stören. Der Browser kann auch ein nicht standardmäßiger Benutzeragent sein, und der Websitebesitzer versucht, sie davon abzuhalten, Links außerhalb des Unternehmens zu folgen, indem er etwas präsentiert, dem ein Benutzer leicht folgen kann.
Brian Lyttle
Lese ich Sie richtig, dass das Aufrufen der PHP- header()Funktion möglicherweise ignoriert wird? Das macht mir große Sorgen. Ich war mir bereits der HTML- und JS-Umleitungsmethoden bewusst und wie weniger zuverlässig sie sind, aber ich hätte nie gedacht, dass ein serverseitig gesendeter HTTP-Header tatsächlich ignoriert werden könnte.
Lotus Notes
1
@ Lotus Viele Leute senden den Header nicht richtig, was das größere Problem ist. Sie sollten einen 3xx-Code davor einfügen, was viele Leute nicht tun. Ein Browser könnte diese Anfrage ignorieren, wenn er dies wünscht (und ich bin sicher, dass einige Clients dies tun; allerdings keine Mainstream-Browser)
Joe Phillips
Beachten Sie auch, dass ein Standort-Header eine absolute URL senden soll , dies wird jedoch häufig ignoriert.
Piskvor verließ das Gebäude am
3

Ich sende immer eine Weiterleitung im Antwortheader mit dem richtigen HTTP-Statuscode (z. B. 301 oder 302 - siehe http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ), was zu einer sofortigen Weiterleitung führt. Mir sind keine guten technischen Gründe bekannt, warum jemand ein "Bitte warten, während Sie umgeleitet werden" anzeigt.

Will Peavy
quelle
1

Der Hauptgrund dafür ist, dass auf der Site, die Sie umgeleitet haben, ein Datensatz erstellt wird. Die Seite könnte Google Analytics laden, aber die Daten werden auch in den Weblogs gespeichert.

Wenn Sie eine Weiterleitung über HTTP-Header senden, wechselt der Browser zur anderen Site, ohne zusätzliche Anforderungen an die ursprüngliche Site zu stellen. Javascript-basiertes Tracking kann diese Exits abfangen, bietet dem Websitebesitzer jedoch bessere Möglichkeiten zum Tracking.

In einigen Fällen möchten Sie dem Benutzer möglicherweise auch einen Haftungsausschluss geben, wenn dieser umgeleitet wird. Dies ist besonders wichtig für Webmaster, die in regulierten Branchen arbeiten. Wenn Sie nicht in einer regulierten Branche wie Banken oder Pharmazeutika arbeiten, werden Sie diese Anforderungen nicht besonders schätzen.

Brian Lyttle
quelle
Zusammenfassend ist dieses Muster also nur erforderlich, wenn Sie die Aktionen Ihrer Benutzer auf der Website verfolgen müssen.
Lotus Notes
0

Außerdem kann mit der Zurück-Taste ordnungsgemäß gearbeitet werden.

Hallo71
quelle