De acuerdo con las convenciones REST (estilo arquitectónico de software), las solicitudes POST deben usarse donde los datos se ven afectados (creados, actualizados o destruidos). Las solicitudes GET se usan para casos en los que los datos persistentes no se ven afectados. Cerrar sesión realmente no afecta los datos, ya que podría volver a iniciar sesión con la misma facilidad, por lo que uno podría considerarlo adecuado para una solicitud GET porque no dañará a nadie si alguien engaña a otra persona para que visite http: // ejemplo .com / logout. Algunos desarrolladores utilizan solicitudes GET para cualquier cosa que no modifique datos persistentes, y solicitudes POST para las pocas solicitudes que crean, actualizan o destruyen datos.
Sin embargo, las solicitudes POST definitivamente deberían usarse para cerrar sesión, ya que podría ahorrarles a los usuarios una gran cantidad de problemas. Con una solicitud GET, cualquier otro sitio web que visite podría cerrar la sesión de cualquier sitio web que esté utilizando una solicitud GET para cerrar sesión. Simplemente agregando un iframe invisible (alto y ancho de cero) en su página con la URL de cierre de sesión cargaría la URL en su navegador sin su conocimiento, y como resultado, la próxima vez que visite ese otro sitio web, se cerrará la sesión. No es un gran problema para el usuario final, porque no perdería ninguna información, pero podría ser molesto. Quora User señala en los comentarios que esto también puede ocurrir con las solicitudes POST, pero es un poco más complicado lograr el mismo efecto (requiere un poco de JavaScript, mientras que con una solicitud GET, solo involucra una etiqueta HTML).
En teoría, una solicitud DELETE (http://www.w3.org/Protocols/rfc2…) tendría más sentido para cerrar sesión, ya que se está eliminando una sesión. El problema con las solicitudes DELETE es que los navegadores web no las admiten, por lo que algunos desarrolladores optan por respaldar las solicitudes POST para cualquier solicitud que normalmente se incluiría en una solicitud PUT o DELETE. Algunos marcos web han implementado un campo de formulario oculto especial que le dice al marco que interprete una solicitud POST específica como una solicitud PUT o DELETE.
- Opciones para el desarrollo web de aplicaciones rápidas?
- Cómo insertar elementos de una lista de nodos en una matriz basada en un selector CSS en Vanilla JS
- Sin un sitio web, ¿cómo podemos construir una base de datos para un próximo portal?
- ¿Cuál es la mejor manera de obtener vínculos de retroceso 'Do-follow' para mi sitio web de dinero?
- ¿Qué roles de base de datos predeterminados se crean cuando crea una base de datos?