HTTP Métodos: GET vs POST
Los dos métodos HTTP más utilizados son: GET y POST.
¿Qué es HTTP?
El Protocolo de Transferencia de Hipertexto (HTTP) está diseñado para garantizar la comunicación entre el cliente y el servidor.
HTTP funciona como un protocolo de solicitud-respuesta entre el cliente y el servidor.
El navegador web puede ser el cliente, y una aplicación de red en una computadora también puede actuar como servidor.
Ejemplo: el cliente (navegador) envía una solicitud HTTP al servidor; el servidor devuelve una respuesta al cliente. La respuesta contiene información de estado sobre la solicitud y también puede contener el contenido solicitado.
Dos métodos de solicitud HTTP: GET y POST
Al realizar solicitudes y respuestas entre el cliente y el servidor, los dos métodos más utilizados son: GET y POST.
- GET- Solicita datos de un recurso especificado.
- POST- Envía datos para ser procesados a un recurso especificado.
Los parámetros enviados por GET generalmente se muestran en la URL, mientras que POST, al enviarse mediante un formulario, no se muestra en la URL, por lo que POST es más discreto:

Método GET
Ten en cuenta que la cadena de consulta (pares de nombre/valor) se envía en la URL de la solicitud GET:
Algunas notas adicionales sobre las solicitudes GET:
- Las solicitudes GET se pueden almacenar en caché
- Las solicitudes GET permanecen en el historial del navegador
- Las solicitudes GET se pueden guardar como marcadores
- Las solicitudes GET no deben usarse al manejar datos sensibles
- Las solicitudes GET tienen limitación de longitud
- Las solicitudes GET solo deben usarse para recuperar datos
Método POST
Ten en cuenta que la cadena de consulta (pares de nombre/valor) se envía en el cuerpo del mensaje HTTP de la solicitud POST:
Host: example.com
name1=value1&name2=value2
Algunas notas adicionales sobre las solicitudes POST:
- Las solicitudes POST no se almacenan en caché
- Las solicitudes POST no permanecen en el historial del navegador
- Las solicitudes POST no se pueden guardar como marcadores
- Las solicitudes POST no tienen requisitos de longitud de datos
Comparación entre GET y POST
La siguiente tabla compara los dos métodos HTTP: GET y POST.
| GET | POST | |
|---|---|---|
| Botón atrás / Actualizar | Inofensivo | Los datos se vuelven a enviar (el navegador debe informar al usuario de que los datos se volverán a enviar). |
| Marcadores | Se puede guardar como marcador | No se puede guardar como marcador |
| Caché | Se puede almacenar en caché | No se puede almacenar en caché |
| Tipo de codificación | application/x-www-form-urlencoded | application/x-www-form-urlencoded o multipart/form-data. Para datos binarios, se utiliza codificación multipart. |
| Historial | Los parámetros se conservan en el historial del navegador. | Los parámetros no se guardan en el historial del navegador. |
| Limitación de la longitud de los datos | Hay limitación. Al enviar datos, el método GET agrega los datos a la URL; la longitud de la URL está limitada (la longitud máxima de la URL es de 2048 caracteres). | Sin límite. |
| Limitación del tipo de datos | Solo se permiten caracteres ASCII. | Sin limitación. También se permiten datos binarios. |
| Seguridad | En comparación con POST, GET es menos seguro porque los datos enviados son parte de la URL. ¡Nunca use GET al enviar contraseñas u otra información sensible! |
POST es más seguro que GET porque los parámetros no se guardan en el historial del navegador ni en los registros del servidor web. |
| Visibilidad | Los datos son visibles para todos en la URL. | Los datos no se muestran en la URL. |
Otros métodos de solicitud HTTP
La siguiente tabla enumera otros métodos de solicitud HTTP:
| Método | Descripción |
|---|---|
| HEAD | Igual que GET, pero solo devuelve los encabezados HTTP, no el cuerpo del documento. |
| PUT | Sube la representación del URI especificado. |
| DELETE | Elimina el recurso especificado. |
| OPTIONS | Devuelve los métodos HTTP que soporta el servidor. |
| CONNECT | Convierte la conexión de solicitud en un canal TCP/IP transparente. |