GET vs. POST: los dos métodos de petición HTTP más conocidos cara a cara

En las páginas web actuales, los clientes (también llamados navegadores) no solo obtienen un elemento HTML del servidor, sino que también envían información como la siguiente:

  • El texto de búsqueda que el usuario ha escrito en el motor de búsqueda
  • El contenido de los formularios
  • El filtro de selección en tiendas online
  • El orden de una lista

Para enviar ciertos tipos de información al servidor, el protocolo HTTP provee diferentes métodos de petición. Los dos más importantes son GET y POST, los cuales, aunque entregan los mismos resultados, revelan algunas diferencias entre ellos. Lee a continuación cuáles son estas diferencias y cuándo conviene utilizar uno u otro.

Consejo

Si quieres aprender más sobre los métodos de petición en general, no te pierdas nuestro artículo sobre las peticiones HTTP en nuestra guía.

Métodos de petición HTTP: GET

Con el método GET, los datos que se envían al servidor se escriben en la misma dirección URL. En la ventana del navegador, lo encontrarás así:

www.ejemplo.com/registrarse.php?nombre=pedro&apellido=perez&edad=55&genero=hombre

Toda la información introducida por el usuario (los llamados “parámetros URL”) se transmiten tan abiertamente como el URL en sí mismo. Esto tiene ventajas y desventajas.

Ventajas de GET

Los parámetros URL se pueden guardar junto a la dirección URL como marcador. De esta manera, puedes introducir una búsqueda y más tarde consultarla de nuevo fácilmente. También se puede volver a acceder a la página a través del historial del navegador.

Esto resulta práctico, por ejemplo, si visitas con asiduidad un mismo lugar en Google Maps o si guardas páginas web con configuraciones de filtro determinadas.

Desventajas de GET

La mayor desventaja del método GET es su débilprotección de los datos. Los parámetros URL que se envían quedan visibles en la barra de direcciones del navegador y son accesibles sin clave en el historial de navegación, en el caché y en el log de los servidores.

Otra desventaja es que su capacidad es limitada: dependiendo del servidor y del navegador, no es posible introducir más de 2000 caracteres. Además, los parámetros URL solo pueden contener caracteres ASCII (letras, números, signos, etc.) y no datos binarios como archivos de audio o imágenes.

Métodos de petición HTTP: POST

El método POST introduce los parámetros en la solicitud HTTP para el servidor. Por ello, no quedan visibles para el usuario. Además, la capacidad del método POST es ilimitada.

Ventajas de POST

En lo relativo a los datos, como, por ejemplo, al rellenar formularios con nombres de usuario y contraseñas, el método POST ofrece mucha discreción. Los datos no se muestran en el caché ni tampoco en el historial de navegación. La flexibilidad del método POST también resulta muy útil: no solo se pueden enviar textos cortos, sino también otros tipos de información, como fotos o vídeos.

Desventajas de POST

Cuando una página web que contiene un formulario se actualiza (por ejemplo, cuando se retrocede a la página anterior) los datos del formulario debentransferirse de nuevo (puede que alguna vez hayas recibido una de estas advertencias). Por este motivo, existe el riesgo de que los datos se envíen varias veces por error, lo que, en el caso de una tienda online, puede dar lugar a pedidos duplicados. No obstante, las webs modernas de las tiendas suelen estar preparadas para evitar este tipo de problemas.

Además, los datos transferidos con el método POST no pueden guardarsejunto al URL como marcador.

Comparación entre los métodos GET y POST

  GET POST
Visibilidad Visible en la barra de direcciones para el usuario Invisible para el usuario
Marcadores e historiales de navegación Los parámetros URL se guardan junto al URL Los parámetros URL no se guardan junto al URL
Caché y registro del servidor Los parámetros URL se guardan sin cifrar. Los parámetros URL no se guardan automáticamente
Comportamiento al actualizar el navegador o retroceder Los parámetros URL no se envían de nuevo El navegador advierte de que los datos del formulario se enviarán de nuevo
Tipo de datos Solo caracteres ASCII Caracteres ASCII y datos binarios
Longitud de datos Limitado al máximo del URL (2048 caracteres) Ilimitado

¿Cuándo usar uno u otro?

El método POST es aconsejable cuando el usuario debe enviar datos o archivos al servidor, como, por ejemplo, cuando se rellenan formularios o se suben fotos.

El método GET es adecuado para la personalización de páginas web: el usuario puede guardar búsquedas, configuraciones de filtros y ordenaciones de listas junto al URL como marcadores, de manera que en su próxima visita la página web se mostrará según sus preferencias.

A modo de resumen:

  • GET para la configuración de páginas web (filtros, ordenación, búsquedas, etc.)
  • POST para la transferencia de información y datos

Comienza la cuenta atrás
Atrapa las ofertas de Black Friday para garantizar tu éxito en Internet. La venta termina el Cyber Monday.
Ahorra hasta un 98%