Estructura y Funcionamiento
HTTP, de sus siglas en inglés: "Hypertext Transfer Protocol", es el nombre de un protocolo el cual nos permite realizar una petición de datos y recursos, como pueden ser documentos HTML . Es la base de cualquier intercambio de datos en la Web, y un protocolo de estructura cliente-servidor, esto quiere decir que una petición de datos es iniciada por el elemento que recibirá los datos (el cliente), normalmente un navegador Web. Así, una página web completa resulta de la unión de distintos sub-documentos recibidos, como, por ejemplo: un documento que especifique el estilo de maquetación de la página web (CSS), el texto, las imágenes, vídeos, scripts, etc...
Clientes y servidores se comunican intercambiando mensajes individuales (en contraposición a las comunicaciones que utilizan flujos continuos de datos). Los mensajes que envía el cliente, normalmente un navegador Web, se llaman peticiones, y los mensajes enviados por el servidor se llaman respuestas.
Linea de Peticion
En la línea de petición colocamos el método HTTP a utilizar, la URI de la petición y el protocolo HTTP a utilizar. Es decir, que tienen la estructura siguiente:
METODO-HTTP URI PROTOCOLO-HTTP
Hablaremos de los métodos HTTP en el siguiente post, pero básicamente los métodos HTTP indican qué tipo de acción nuestro cliente quiere realizar, ya sea que quiera leer un recurso, o si quiere enviar información hacia el API, etc. La URI se refiere a la dirección donde se encuentra el recurso. Y el protocolo HTTP se refiere a cual protocolo HTTP se va a utilizar, esto porque existen varias versiones del protocolo HTTP, a la hora de escribir esta entrada, el protocolo más común es el HTTP/1.1 , sin embargo, existen otras revisiones más recientes, como la revisión HTTP/2.0.
Cabezera de la Peticon
La cabecera de la petición es donde se encuentran las cabeceras de la petición. Las cabeceras son metadatos que se envían en la petición para brindar información sobre la petición. Cada cabecera se especifica con un nombre, luego dos puntos, y luego seguido por el valor de dicha cabecera.
Veamos un ejemplo de una cabecera:
Host: en.wikipedia.org
En este caso, el nombre de la cabecera es Host, y su valor es en.wikipedia.org. La cabecera Host indica el dominio del servidor.
Cuerpo de Peticion
Parte opcional de la solicitud que se utiliza para enviar datos al servidor. Este componente es especialmente relevante en solicitudes HTTP que utilizan los métodos POST, PUT y PATCH, donde se envían datos al servidor para ser procesados o almacenados.
Destacamos que las peticiones GET no utilizan un cuerpo, porque uno no tiende a enviar muchos datos complejos a la hora de leer información. En el caso del método POST, sí solemos utilizar el cuerpo de la petición para colocar lo que queremos enviar.
Vamos a ver entonces una petición HTTP con sus tres partes:
POST /api/autores HTTP/1.1
Host: miWebApi.com
Content-Type: application/json
Cache-Control: no-cache
{
"Nombre": "Felipe Gavilán",
"Edad": 999
}