Saltar al contenido
Codifíca.me | Desarrollo web | Programación

Comparación de método GET vs método POST

21 noviembre, 2016
get-vs-post

En esta entrada vamos a comparar el envío de datos utilizando el método POST y el método GET.

Basicamente, la diferencia que existe entre los métodos GET y POST está en la forma de enviar los datos al servidor, ya que el método GET envía los datos a través de la URL y el método POST no.

Por ejemplo, en un formulario si utilizas el método GET , enviarías los datos del cliente al servidor a través de la URL. Formando una URL en la que le pasarías las claves y los valores.

Ejemplo de código con el método GET

Este es un ejemplo de lo que enviaría un formulario que está mostrando el nombre del usuario y que utiliza el método GET para realizar el envío de datos.

<form action="http://www.la-url-que-quieras.com/" method ="get">
  Nombre del usuario: <input type="text" name="nombre" value="Paco">
<input type="submit"/>
</form>

Esta es la url que enviaría con los datos en formato clave -> valor.

http://www.la-url-que-quieras.com/

Ejemplo de código con el método POST

Este es un ejemplo de lo que enviaría un formulario que está mostrando el nombre del usuario y que utiliza el método POST para realizar el envío de datos.

<form action="http://www.la-url-que-quieras.com/" method ="post">
  Nombre del usuario: <input type="text" name="nombre" value="Paco">
<input type="submit"/>
</form>

Esta es la url que enviaría con los datos:

http://www.la-url-que-quieras.com/?nombre=Paco

A partir de esta gran diferencia te muestro una tabla comparativa, para que puedas ver en todo lo que se diferencian.

GET POST
Historial Los parámetros o datos enviados serán visibles en la url , por lo que se podrán ver en el historial Los parámetros o datos enviados No serán visibles en la url , por lo que no se podrán ver en el historial
Bookmarked Puede añadirse a favoritos No pueden añadirse a favoritos
Vuelta atras /
Renvío
Las peticiones GET pueden ser re-enviadas una y otra vez, pero pueden estar cacheadas en el navegador. Los navegadores (generalmente) muestran una alerta de que va a ser reenviado.
Codificación application/x-www-form-urlencoded multipart/form-data or application/x-www-form-urlencoded
binary
Parámetros Se pueden enviar de 2000 a 4000 parámetros, dependiendo de la limitación del servidor, y teniendo en cuenta la limitación de url segura. Puedes enviar parámetros, subir imágenes, ficheros, etc.
Visibilidad Visible y fácil de cambiar modificar No es visible y es más difícil de cambiar o modificar
Tipos de datos Solamente se pueden enviar caracteres ASCII Sin restricciones , se envía en binario
Seguridad Sin duda GET es el más inseguro de ambos, los datos se pasan a través de la URL y permanecen en el historial. El servidor los almacena en texto plano. POST es algo más seguro, aunque realmente no se considera un elemento de seguridad.
Limitaciones  en la cantidad de datos Está limitado a 2048 caracteres, que es la limitación de las URLs seguras. Aunque puede variar dependiendo el servidor y el navegador. No tiene limitaciones.
Usabilidad Realiza peticiones simples al servidor, no se utiliza para enviar datos confidenciales, como pueden ser claves, etc. etc POST se utiliza para enviar datos, para subir ficheros, o imágenes.
URL El método GET envía los datos formateando la URL, enviando ?clave=valor &clave=valor El método POST no utiliza la URL para el envío de datos
Caché Puede ser cacheado No puede ser cacheado

get-vs-post