"Gracias por tu publicación. Por favor, espere mientras es redirigido ". ¿Necesario?

11

Gracias por tu publicación. Por favor, espere mientras es redirigido.

Si no se le redirige automáticamente, haga clic aquí.

Probablemente esté familiarizado con mensajes como estos, especialmente cuando usa la web en los años 90 o principios de los 2000. En mis propios proyectos, nunca he encontrado una razón para hacer que el usuario espere de 2 a 3 segundos mientras se redirige después de registrarse o publicar algo, por ejemplo. Pero este patrón aparece todo el tiempo, incluso en software web popular como PHPBB.

Mi pregunta es, ¿la redirección todavía tiene un lugar / necesidad en el desarrollo web moderno (ajaxy)? ¿Hay alguna situación que requiera una redirección como esta, lo que finalmente molesta al usuario y cuáles son las razones técnicas que lo respaldan ? ¿Por qué no simplemente redirigir instantáneamente si se requiere una redirección?

Lotus Notes
fuente
Solo una suposición: ¿tal vez está relacionado de alguna manera con la prevención de acciones con script o bots? Sin embargo, hay mejores métodos para hacerlo (Captchas, etc.).
Debido a la solicitud del usuario, he cambiado mi instalación de PHPBB para redirigir de inmediato. Solo tomó un par de cambios de línea y funciona perfectamente.
André Paramés
@ Martin: posiblemente, pero si es así, está completamente equivocado, ya que cualquier bot puede seguir las redirecciones como cualquier navegador (especialmente si hay un encabezado de ubicación, como en PHPBB).
André Paramés

Respuestas:

3

¿Hay alguna situación que requiera una redirección como esta, lo que finalmente molesta al usuario y cuáles son las razones técnicas que lo respaldan?

La intención más común (generalmente en el caso de una solicitud que crea un nuevo registro en una base de datos, procesa una transacción de pago, etc.) es la prevención de solicitudes duplicadas si el usuario presiona el botón "Actualizar" y vuelve a publicar la solicitud.

¿La redirección todavía tiene un lugar / necesidad en el desarrollo web moderno (ajaxy)?

Si puede salirse con la suya diciéndole a los usuarios que tienen Javascript deshabilitado que sus solicitudes serán ignoradas o posiblemente mal manejadas ( me viene a la mente el mensaje "¡No haga clic en enviar más de una vez!" ), Claro, pero no es un gran esfuerzo apoyar esas peculiaridades JS inhabilitó a los usuarios y se aseguró de que el departamento de facturación no vea la queja ocasional de doble facturación, por lo que la redirección de algún tipo todavía se implementa en muchas interfaces.

¿Por qué no simplemente redirigir instantáneamente si se requiere una redirección?

La redirección debe emitirse instantáneamente si el objetivo es evitar el envío de múltiples formularios; en el caso de las redirecciones cronometradas, tal vez estén orientadas a servidores lentos, no hayan tenido en cuenta un bloqueo basado en la sesión, o están tratando de Resolver un problema más esotérico.

danlefree
fuente
"es la prevención de solicitudes duplicadas" --- la redirección de ubicación silenciosa también lo hace. "La redirección se debe emitir instantáneamente si el objetivo es evitar el envío de múltiples formularios", no debería, porque F5en la Stand bypágina también se volverá a enviar la publicación.
zerkms
@zerkms - Estoy sugiriendo una redirección a una nueva ubicación antes de enviar un cuerpo de respuesta (es decir, no hay una página "en espera")
danlefree
5

En primer lugar, no todos los navegadores redirigirán cuando se les asigne un encabezado de ubicación. En segundo lugar, no todos los navegadores redirigirán con Javascript porque está deshabilitado. En tercer lugar, no todos los navegadores admitirán las etiquetas de meta-actualización. Cualquiera de estos casos es probablemente muy raro, por lo que probablemente no importará. Pero incluso si lo hace, creo que puede superponer todos estos métodos.

La forma en que lo hacen las páginas PHPBB (espera 5 segundos o algo así) no es necesaria en absoluto. Debería redirigirse inmediatamente y, si no lo hace, mostrará la página HTML (que tiene meta-actualización y Javascript y texto con un enlace) después de enviar los encabezados. Casi no hay posibilidad de que esta página se muestre en un navegador normal si está programada correctamente.

Joe Phillips
fuente
"En primer lugar, no todos los navegadores redirigirán cuando se les dé un encabezado de ubicación" [cita requerida]
Jon Cram
@ Jon Cram: técnicamente los servidores proxy web y las extensiones podrían interferir con el encabezado de ubicación. El navegador también podría ser un agente de usuario no estándar y el propietario del sitio está tratando de disuadirlos de seguir enlaces externos presentando algo que un usuario puede seguir fácilmente.
Brian Lyttle
¿Te estoy leyendo correctamente en que llamar a la header()función de PHP en realidad podría ignorarse? Esto me preocupa mucho. Ya conocía los métodos de redireccionamiento HTML y JS y cómo son menos confiables, pero en realidad nunca pensé que un encabezado HTTP enviado por el lado del servidor pudiera ser ignorado.
Lotus Notes
1
@Lotus Muchas personas no envían el encabezado correctamente, que es el mayor problema. Se supone que debe incluir un código 3xx antes que muchas personas no lo hacen. Un navegador podría ignorar esta solicitud si quisiera (y estoy seguro de que algunos clientes lo hacen, aunque no los navegadores convencionales)
Joe Phillips
Tenga en cuenta también que se supone que un encabezado de ubicación envía una URL absoluta , aunque esto a menudo se ignora.
Piskvor salió del edificio el
3

Siempre envío una redirección en el encabezado de respuesta con el código de estado HTTP adecuado (por ejemplo, 301 o 302; consulte http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ), lo que da como resultado una redirección inmediata. No conozco ninguna buena razón técnica por la que alguien muestre un mensaje "espere mientras está redirigido".

Will Peavy
fuente
1

La razón principal para hacer esto es que se hace un registro en el sitio que ha sido redirigido. La página podría cargar Google Analytics, pero los datos también estarán en los weblogs.

Si envía una redirección utilizando encabezados HTTP, el navegador se dirigirá al otro sitio sin realizar ninguna solicitud adicional al sitio original. El seguimiento basado en Javascript puede detectar estas salidas, pero le da al propietario del sitio mejores oportunidades para el seguimiento.

En algunos casos, es posible que también desee proporcionar una exención de responsabilidad para el usuario de la que se redirige. Esto es particularmente importante para los webmasters que trabajan en industrias reguladas. Si no trabaja en una industria regulada como la banca o los productos farmacéuticos, no apreciará mucho estos requisitos.

Brian Lyttle
fuente
En resumen, ¿este patrón solo es necesario si necesita realizar un seguimiento de las acciones de sus usuarios en el sitio web?
Lotus Notes
0

También permite que el botón de retroceso funcione correctamente.

Hola71
fuente