2010-01-07 17 views
6

Recuerdo haber leído en alguna parte que era una buena práctica redirigir páginas usando GET para mostrar la página siguiente después de una solicitud POST. ¿Por que es esto entonces?¿Buenas prácticas para redirigir páginas?

+0

En realidad es un patrón bien conocido y común, llamado Mensaje/Redirigir/Obtener (o algo así): http://en.wikipedia.org/wiki/Post/Redirect/Get. – cic

Respuesta

12

De esta forma, si el usuario vuelve a cargar la página, el navegador no enviará otra POST.

Por ejemplo, si la página es una página de confirmación de pedido, no desea que la orden se repita si el usuario actualiza la página.

-2

Supongo que esto es para que la página siguiente sea bookmarkable.

+0

Las respuestas de Stack Overflow no son un buen lugar para ass-u-me. – gahooa

+0

No creo que mi respuesta sea mala: la marcabilidad es una razón válida para usar GET después de una redirección. GET mantiene los parámetros en la cadena de consulta, lo que hace que las páginas dinámicas de marcadores sean posibles. La respuesta aceptada ("para evitar la publicación doble") no explica por qué usar GET, solo promueve la publicación doble. –

1

Es porque si un usuario envía un formulario y se lo lleva a la página de agradecimiento, luego actualiza esa página, el navegador solicitará al usuario que vuelva a enviar el formulario, creando así dos publicaciones para su manejador de datos. Si redirige a la página de agradecimiento con GET, los vars de publicación están vacíos, por lo tanto, el formulario no se volverá a enviar.

No estoy seguro de que todavía se considere una buena práctica, hace tiempo que no escucho nada sobre el tema.

0

GET es idempotent mientras que POST no lo es. Si el usuario vuelve a cargar la página (o vuelve allí haciendo clic en el botón Atrás del navegador), nada se rompe.

+0

Bueno, debería funcionar de esa manera, al menos. No hay nada que requiera eso en el lado del servidor web; 'GET' puede arruinar todo lo que el desarrollador del sitio web le pida. Además, los navegadores modernos solicitan al usuario antes de volver a cargar una página 'POST' pero no una página' GET'. –

-4

Si no puede recordar por qué es una buena práctica, entonces tal vez no haya una buena justificación para ello.

En mi humilde opinión, es un caso de columpios y rotondas, y ciertamente es fácil decir lo contrario, si sus buenas prácticas o no realmente dependen de cómo encaja con el resto de su código.

C.

+0

Pregunta por qué es una buena práctica, por lo que responderle con un "No lo sabes, no lo hagas" no es una gran respuesta. –

Cuestiones relacionadas