Diferencias entre GET vs. POST
Por el twitter de anieto2k me entero que ThinkVitamine ha publicado la Guia definitiva de de GET vs POST en la que el autor intenta hacernos reflexionar sobre el uso correcto e incorrecto de ambos métodos, a través de 4 reglas básicas:
- Usar GET para acciones seguras y POST para acciones no seguras.
el GET es más usable (se puede guardar en caché, históricos, marcado, distruido y compartido) y puede ser hackeado. - Usa POST para datos restringidos.
contraseñas o números de tarjeta de crédito no van a ser compartidos. - Usa POST para enviar datos extensos.
la longitud máxima de una URL es de 2.048 carácteres. - Usa GET en entornos AJAX.
El XMLHttpRequest ofrece una respuesta más rápida con el método GET.
Una de las formas más seguras para enviar información a través de formularios es aplicando variables de control con un ID único por sesión.
En una breve conclusión se reduce todo a utilizar POST siempre, excepto cuando:
- Estamos en un entorno AJAX, con consultas inferiores a 2048 carácteres y la consulta puede ser almacenada.
- No estamos en un entorno AJAX, no se maneja información confidencial, la respuesta del formulario no variariá (idempotente), la consulta es inferior a los 2048 carácteres, y los usuarios pueden utilizar la consulta de forma beneficiosa.
Nota: la idempotencia es la propiedad matemática que permite realizar una acción un número indeterminado de veces y conseguir el mismo resultado aunque solamente se hubiese realizdo la acción una sola vez.
3
18 de Agosto de 2009
Raul Quintana

Agosto 26th, 2009 en 17:06
Creo que llega con leer un poco sobre REST para entender la sencilla y abismal diferencia entre POST y GET. El problema es que estamos acostumbrados al mapeo de URL por defecto de Apache, que ejecuta el script que se solicite, sea el método que sea.
El estilo de Java (doPost(), doGet(), etc) es más fiel al modelo REST, aunque el desarrollo de sitios web sencillos no es tan ágil.
Agosto 26th, 2009 en 21:37
Hola Isra!
gracias por el aporte, la verdad es que si, utilizar el método REST – CRUD es la mejor opción para desarrollar aplicaciones web.
El único inconveniente es que los clientes web (navegadores) más comunes no soportan los verbos HTTP PUT y DELETE, aunque se puede emular su acción a través de POST o GET. Sin duda comprender y utilizar correctamente los verbos HTTP nos ayuda desarrollar con coherencia.
Un saludo!
Septiembre 8th, 2009 en 12:47
Sí, es una pena que algunos navegadores no sean compatibles con PUT/DELETE, porque se podrían desarrollar aplicaciones orientadas a servicios (bueno, siendo rigurosos orientadas a recursos) donde el servidor sirviese un API y la interfaz y toda la lógica del cliente estuviese en JavaScript-AJAX.