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?
Respuesta
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.
Supongo que esto es para que la página siguiente sea bookmarkable.
Las respuestas de Stack Overflow no son un buen lugar para ass-u-me. – gahooa
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. –
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.
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.
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'. –
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.
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. –
- 1. Buenas Prácticas para pasar datos entre páginas
- 2. Buenas prácticas de NoSQL
- 3. "tiros Throwable" buenas prácticas
- 4. Buenas Prácticas para Volviendo referencias a objetos
- 5. Buenas prácticas de Webrequest asíncronas
- 6. Buenas prácticas de transacciones NHibernate
- 7. patrón Repositorio de Buenas Prácticas
- 8. Buenas prácticas de Cruise Control.Net
- 9. Buenas prácticas: JDBC de conexión
- 10. Git ramificación/rebase buenas prácticas
- 11. ¿Buenas prácticas para abrir/cerrar conexiones en una aplicación asp.net?
- 12. ¿Buenas prácticas para incluir un menú en un sitio web?
- 13. Rieles: redirigir dos últimas páginas
- 14. lucene buenas prácticas y seguridad de hilos
- 15. Buenas prácticas de Java en Ubuntu
- 16. Libros sobre buenas prácticas de programación
- 17. C++ clase Singleton - buenas prácticas de herencia
- 18. ¿Los constructores protegidos se consideran buenas prácticas?
- 19. Acerca de detectar buenas prácticas de excepción
- 20. Buenas prácticas de desarrollo de Excel VBA
- 21. ¿Buenas prácticas para incluir la configuración XML en Java classpath?
- 22. ¿Buenas prácticas para la gestión de configuración de Capistrano?
- 23. ADO.NET Buenas Prácticas para la conexión y objetos DataAdaptor Ámbito
- 24. Buenas prácticas para datos de múltiples idiomas en Core Data
- 25. ¿Buenas prácticas para usar índices inversos en claves sustitutas? (Oracle)
- 26. Buenas prácticas de NGen y Gacutil
- 27. buenas prácticas en C++ (evaluación diferida)
- 28. NIO Buenas Prácticas - SelectableChannel y InterestOps
- 29. Buenas prácticas de commit de Git Big
- 30. ¿Buenas prácticas con STDIN en Ruby?
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