HTTP Básico - Lo que tienes que saber

Author
Por Darío Rivera
Publicado el en HTTP

HTTP (HyperText Transfer Protocol) es un protocolo que permite la obtención de recursos a través de la web, tales como páginas HTML, imagenes, videos, entre otros. Se enmarca dentro de los protocolos Cliente-Servidor, lo cual indica que existe un intercambio de mensajes basado en una solicitud (request) y una respuesta (response).

recursos http

Imagen tomada de MDN Web Docs

Cuando el cliente (generalmente el browser) realiza una petición HTTP, el servidor devuelve una respuesta que es interpretada por el cliente. En el caso de una página web, el browser realiza el renderizado del código HTML el cuál a su vez puede contener enlaces (de ahí el HyperText), mediante los cuales se realiza otra patición cuando el usuario haga clic en ellos. Otros recursos como imagenes, videos, frames son interpretados por el browser generando una nueva petición HTTP para acceder a dichos recursos. 

HTTP es stateless (sin estado)

HTTP es un protocolo que no conserva estado. Esto quiere decir que cada petición no tiene ninguna relación con peticiones anteriores. Cuando se inicia una petición el cliente envía un request y el server un response, inmediatamente se termina la conexión.

HTTP utiliza sesiones con estado (cookies)

A pesar de que HTTP es stateless, las cookies HTTP permiten sesiones con estado. Básicamente, el uso de algunos encabezados (headers) permite enviar valores de sesión para que peticiones diferentes compartan un mismo contexto.

Flujo HTTP

El flujo HTTP comienza con una petición o requests compuesta por los siguientes elementos.

Request

GET /users/1 HTTP/1.1

Host: blog.pleets.org
Accept-Language: es 

GET: Indica el método utilizado.
/users/1: Indica el camino del recurso en el servidor.
HTTP/1.1: Indica la versión del protocolo.

Todo lo demás, es decir, los pares llave: valor son encabezados o headers. Optionalmente puede existir también un body después de los encabezados.

Response

HTTP/1.1 200 OK

Content-Length: 12547
Content-Type: text/html

<html>...

HTTP/1.1: Indica la versión del protocolo.
200: Indica el status code. Un código mediante el cuál es posible saber si fue o no satisfactoria la petición.
OK: Indica una descripción corta del status code.

Los pares llave: valor son headers y el el body estaría compuesto en este caso por el HTML que devuelve el servidor para ser renderizado por el navegador.

Códigos de respuesta

A continuación tienes un listado de los códigos HTTP más comunes con su descripción:

CódigoDescripción
200 (OK)Petición exitosa
400 (BAD REQUEST)La petición del cliente es errónea
403 (FORBIDDEN)El cliente no tiene el permiso para realizar la petición
404 (NOT FOUND)El recurso no puedo ser encontrado
500 (INTERNAL SERVER ERROR)Ocurrió un error en el servidor procesando la petición

Después de esto, el panorama acerca del protocolo HTTP parece un poco más claro. Te invito a revisar nuestro artículo API REST, después de esto serás todo un experto para profundizar un poco más en este tipo de comunicación HTTP del cual seguramente habrás escuchado.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.