Métodos de solicitud HTML

¿Qué es HTTP?

El protocolo de transferencia de hipertexto (Hypertext Transfer Protocol, abreviado como HTTP) está diseñado para permitir la comunicación entre el cliente y el servidor.

HTTP actúa como protocolo de solicitud-respuesta entre el cliente y el servidor.

Ejemplo: El cliente (navegador) envía una solicitud HTTP al servidor; luego el servidor devuelve la respuesta al cliente. La respuesta contiene información sobre el estado de la solicitud, y también puede contener el contenido solicitado.

Métodos HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

Las dos formas más comunes son: GET y POST.

Método GET

GET se utiliza para solicitar datos de un recurso específico.

GET es uno de los métodos HTTP más comunes.

Tenga en cuenta que la cadena de consulta (par de nombre/valor) se envía en la URL de la solicitud GET:

/test/demo_form.php?name1=value1&name2=value2

Algunas otras notas sobre las solicitudes GET:

  • Las solicitudes GET se pueden almacenar en caché
  • Las solicitudes GET se conservan en el historial del navegador
  • Las solicitudes GET se pueden guardar como favoritos
  • No se debe usar la solicitud GET para procesar datos sensibles
  • Las solicitudes GET tienen un límite de longitud
  • Las solicitudes GET solo deben usarse para recuperar datos (sin modificar)

Método POST

POST se utiliza para enviar datos al servidor para crear/actualizar un recurso.

Los datos enviados al servidor mediante POST se almacenan en el cuerpo de la solicitud HTTP:

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST es uno de los métodos HTTP más comunes.

Algunas otras notas sobre las solicitudes POST:

  • La solicitud POST no se almacenará en caché
  • La solicitud POST no se conservará en el historial del navegador
  • POST no se puede guardar como favorito
  • La solicitud POST no tiene requisitos sobre la longitud de los datos

Método PUT

PUT se utiliza para enviar datos al servidor para crear/actualizar un recurso.

La diferencia entre POST y PUT radica en que la solicitud PUT es idempotente (idempotent). Es decir, múltiples llamadas a la misma solicitud PUT siempre producirán el mismo resultado. Por el contrario, llamar repetidamente a solicitudes POST tiene el efecto secundario de crear múltiples veces el mismo recurso.

Método HEAD

HEAD es casi idéntico a GET, pero sin cuerpo de respuesta.

En otras palabras, si GET /users devuelve una lista de usuarios, HEAD /users emitirá la misma solicitud, pero no devolverá la lista de usuarios.

La solicitud HEAD es útil para verificar el contenido que regresará la solicitud GET antes de enviarla (por ejemplo, antes de descargar un archivo grande o el cuerpo de la respuesta).

Método DELETE

El método DELETE elimina el recurso especificado.

Método OPTIONS

El método OPTIONS describe las opciones de comunicación del recurso objetivo.

Comparación GET y POST

La siguiente tabla compara dos métodos HTTP: GET y POST.

  GET POST
Botón Atrás/Refrescar Inofensivo Los datos se enviarán de nuevo (el navegador debe informar al usuario de que los datos se enviarán de nuevo).
Marcador Se puede guardar como favorito No se puede guardar como favorito
Caché Puede ser almacenado en caché No se puede cachear
Tipo de codificación application/x-www-form-urlencoded application/x-www-form-urlencoded o multipart/form-data. Utilice codificación múltiple para datos binarios.
Historial Los parámetros se conservan en el historial del navegador. Los parámetros no se almacenan en el historial del navegador.
Limitaciones de longitud de datos Sí. Al enviar datos, el método GET agrega datos a la URL; la longitud de la URL está limitada (la longitud máxima de la URL es de 2048 caracteres). Sin limitaciones.
Limitaciones de tipo de datos Sólo permite caracteres ASCII. No hay limitaciones. También permite datos binarios.
Seguridad

En comparación con POST, GET tiene una seguridad menor, ya que los datos enviados son parte de la URL.

¡Nunca use GET para enviar contraseñas u otros datos sensibles!

POST es más seguro que GET, ya que los parámetros no se almacenan en el historial del navegador o en los registros del servidor web.
Visibilidad Los datos son visibles para todos en la URL. Los datos no se mostrarán en la URL.