¿Qué son las solicitudes HTTP?
Lección 2 / 8
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:
Anterior
1 ¿Qué es HTTP?Siguiente
3 ¿Qué son las respu..