¿Qué son las solicitudes HTTP?


Lección 2 / 8

¿Qué son las solicitudes HTTP?

Http

Las solicitudes HTTP son mensajes enviados por el cliente al servidor para iniciar una acción específica. Tienen una estructura específica y se caracterizan por un método (o verbo) que permite distinguir el tipo de acción requerida.

Estructura solicitudes HTTP

Una solicitud HTTP está compuesta por:

  • un método indicando la acción requerida
  • un recurso hacia el cual se realiza la acción
  • cero o más header que caracterizan la solicitud
  • un body (opcional) que contiene los datos para enviar al recurso

Un ejemplo de solicitud HTTP es el siguiente:

GET /guide/laravel/index.php HTTP/2
Host: https://example.com
Accept-Encoding: gzip, deflate, br
Accept-Language: it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36

En esta solicitud, en la primera línea se indica el método (GET) y el recurso (/guide/laravel/index.php), los siguientes contienen los header (en la forma Nombre-Header: valor; tener en cuenta que es el header que permite saber hacia que host dirigir la solicitud). No estña presente un body (que, como veremos más tarde, no tendría mucho sentido en las solicitudes de tipo GET).

Métodos requeridos HTTP

Los métodos de solicitud HTTP identifican la acción que se desea realizar en el recurso. Aunque puedan ser nombres, normalmente suelen denominarse verbos HTTP, precisamente porque representan la acción a realizar.

Aunque, en el ejemplo de comunicación cliente-servidor que presentamos en la lección anterior, describimos un navegador que le pide a un servidor algunos recursos para descargar, debe tenerse en cuenta que el conjunto completo de métodos HTTP está diseñado para permitir que los clientes carguen o cambien recursos en el servidor.

A continuación los métodos principales y su uso previsto:

GET

Solicita el recurso indicado, que el server proporciona como body de la respuesta.

Dado que se usa para solicitar datos al server, no tendría que incluir un body.

HEAD

Tiene el mismo efecto que GET, pero la respuesta del server no tiene body.

Puede ser útil ejecutar antes de GET para obtener información del server sobre el tamaño del recurso, proporcionada en la respuesta del server con el header Content-Length.

POST

Envía datos al server usando el recurso adecuado.

Una solicitud POST se envía, generalmente, a través de un form HTML e implica un cambio en el server. En este caso, el tipo de contenido es administrado por el elemento <form> en la página. Los valores posibles para el tipo de contenido son application/x-www-form-urlencoded y multipart/form-data.

Cuando la solicitud POST se envía a través de un método que no sea un formulario HTML, como XMLHttpRequest, el body puede ser de cualquier tipo (por ejemplo, application/json)

PUT

Crea un nuevo recurso o reemplaza el recurso indicado con el body de la solicitud.

A diferencia del método POST, el método PUT es idempotente: llamarlo una o más veces seguidas tiene el mismo efecto, mientras que las solicitudes POST posteriores idénticas pueden tener efectos adicionales (por ejemplo, para cada POST creo un nuevo pedido en un server de e-commerce).

DELETE

Elimina el recurso indicado.

PATCH

Aplica un cambio parcial al recurso.

Al igual que el método POST, puede tener efectos adicionales cada vez que se llama a un recurso (por lo que no es idempotente).

A diferencia del método PUT, en el body del método PATCH se pueden indicar "instrucciones" para modificar el recurso.

No todos los servidores web implementan este método para varios recursos.

OPTIONS

Pregunta sobre las opciones de comunicación para el recurso indicado (por ejemplo, el servidor puede responder qué otros métodos son aplicables al recurso).

Referencias

Para obtener más información sobre estos y otros métodos HTTP:

Guía Laravel en español 1 ¿Qué es HTTP? 2 ¿Qué son las solicitudes HTTP? 3 ¿Qué son las respuestas HTTP? 4 Administrador de dependencias Composer 5 Laravel, el framework para los artesanos de la web 6 El ecosistema Laravel 7 Estructura de un proyecto Laravel 8 Laravel y el ciclo de vida de las solicitudes

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad