HTTP Métodos de solicitud
¿Qué es HTTP?
El Protocolo de transferencia de hipertexto (Hypertext Transfer Protocol - HTTP) está diseñado para permitir las comunicaciones entre clientes y servidores.
HTTP funciona como un protocolo de solicitud-respuesta entre un cliente y un servidor.
Ejemplo: un cliente (navegador) envía una solicitud HTTP al servidor; luego el servidor devuelve una respuesta al cliente. La respuesta contiene información del estado de la solicitud y también puede contener el contenido solicitado.
Métodos HTTP
- GET
- POST
- PUT
- HEAD
- DELETE
- PATCH
- OPTIONS
- CONNECT
- TRACE
Los dos métodos HTTP más comunes son: GET y POST.
El método GET
GET se utiliza para solicitar datos de un recurso específico.
Tenga en cuenta que la cadena de consulta (pares nombre/valor) se envía en la URL de una solicitud GET:
/test/demo_form.html?name1=value1&name2=value2
Algunas notas sobre solicitudes GET:
- Las solicitudes GET se pueden almacenar en caché
- Solicitudes GET para permanecer en el historial del navegador
- Las solicitudes GET se pueden marcar como favoritas
- Las solicitudes GET nunca deben usarse cuando se trata de datos confidenciales
- Las solicitudes GET tienen restricciones de longitud
- Las solicitudes GET solo se utilizan para solicitar datos (no modificar)
El método POST
POST se utiliza para enviar datos a un servidor para crear/actualizar un recurso.
Los datos enviados al servidor con POST se almacenan en el cuerpo de la solicitud HTTP:
POST /test/demo_form.html HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
Algunas notas sobre solicitudes POST:
- Las solicitudes POST nunca se almacenan en caché
- Las solicitudes POST no permanecen en el historial del navegador
- Las solicitudes POST no se pueden marcar como favoritas
- Las solicitudes POST no tienen restricciones en la longitud de los datos
Comparar GET y POST
La siguiente tabla compara los dos métodos HTTP: GET y POST.
GET | POST | |
---|---|---|
Botón ATRÁS/Recargar | Inofensivo | Los datos se volverán a enviar (el navegador debe alertar al usuario que los datos están a punto de volver a enviarse) |
Marcado como favorito | Se puede marcar como favorito | No se puede marcar como favorito |
En caché | Se puede almacenar en caché | No almacenado en caché |
Tipo de codificación | aplicación/x-www-form-urlencoded | aplicación/x-www-form-urlencoded o multipart/form-data. Utilice codificación multiparte para datos binarios |
Historia | Los parámetros permanecen en el historial del navegador | Los parámetros no se guardan en el historial del navegador |
Restricciones en la longitud de los datos | Sí, al enviar datos, el método GET agrega los datos a la URL; y la longitud de una URL es limitada (la longitud máxima de la URL es 2048 caracteres) | Sin restricciones |
Restricciones sobre el tipo de datos | Solo se permiten caracteres ASCII | Sin restricciones. También se permiten datos binarios |
Seguridad | GET es menos seguro en comparación con POST porque los datos enviados son parte de la URL ¡Nunca utilice GET al enviar contraseñas u otra información confidencial! |
POST es un poco más seguro que GET porque los parámetros no se almacenan 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 |
El método PUT
PUT se utiliza para enviar datos a un servidor para crear/actualizar un recurso.
La diferencia entre POST y PUT es que las solicitudes PUT son idempotentes. Es decir, llamar a la misma solicitud PUT varias veces siempre producirá el mismo resultado. Por el contrario, llamar repetidamente a una solicitud POST tiene efectos secundarios al crear el mismo recurso varias veces.
El método HEAD
HEAD es casi idéntico a GET, pero sin el cuerpo de la respuesta.
En otras palabras, si GET /users devuelve una lista de usuarios, entonces HEAD /users realizará la misma solicitud pero no devolverá la lista de usuarios.
Las solicitudes HEAD son útiles para comprobar qué devolverá una solicitud GET antes de realizar una solicitud GET, como antes de descargar un archivo grande o un cuerpo de respuesta.
El método DELETE
El método DELETE elimina el recurso especificado.
El método PATCH
El método PATCH se utiliza para aplicar modificaciones parciales a un recurso.
El método OPTIONS
El método OPTIONS describe las opciones de comunicación para el recurso de destino.
El método CONNECT
El método CONNECT se utiliza para iniciar una comunicación bidireccional (un túnel) con el recurso solicitado.
El método TRACE
El método TRACE se utiliza para realizar una prueba de bucle invertido de mensajes que prueba la ruta del recurso de destino (útil para fines de depuración).