newbie

Revisando el protocolo HTTP

¿Cómo llegan las páginas hasta tu navegador? Podemos empezar por el protocolo de transporte que lo permite. El protocolo HTTP nos permite entregar contenido, ya sea texto, imagen, o video.

Un documento HTML es entregado al navegador por medio de HTTP. El protocolo HTTP es la base de la Web. Es un protocolo cliente/servidor, donde la interacción la empieza el cliente, el caso más común, nuestro navegador.

Pero, ¿qué es un protocolo? Un protocolo es un conjunto de reglas que rigen el intercambio de comunicación. Existen diferentes conjunto de reglas que se deben de cumplir para decir que tenemos un servidor HTTP.

protocolo http

La comunicación, entre el navegador y el servidor que implementa el protocolo de HTTP, se realiza por medio de mensajes individuales. Los mensajes que manda el navegador se le llaman solicitudes o requests y los mensajes con los que contesta el servidor se llaman respuesta o response. Estos términos, request y response, los dejaré en ingles porque serán términos recurrentes en la programación Web.

request reponse

La programación Web es crear documentos dinámicos que puedan ser presentados al usuario final. La mayoría de las aplicaciones que vemos en nuestro navegador son el resultado de combinar HTML, CSS, JavaScript, imágenes y videos. Si lo comparamos con una carretera, HTTP es el asfalto con indicaciones, que le permite a los autos – paquetes – llegar a su destino final. Pero si observamos una carretera, hay más elementos que nos facilitan conducir. Tenemos los señalamientos en una intersección, tenemos la base de la calle, etcétera. Lo mismo pasa con la comunicación HTTP.

Si leemos la implementación de un servidor HTTP, nos daremos cuenta de que HTTP por si solo no puede enviar los mensajes. Para que un navegador y un servidor HTTP se comuniquen, necesitan de la ayuda de otros protocolos de comunicación. El protocolo HTTP es un protocolo que se sitúa en la capa de aplicación del modelo OSI. No es importante que conozcas a fondo el modelo OSI para empezar en el mundo de la programación Web pero te ayudará cuando tengas que descubrir porque un error está sucediendo. Esto puede leerse extraño, “no tienes que entender al 100%…”, pero es más común de lo que te imaginas en la programación Web.

Imagínate el modelo OSI como una cebolla, donde una capa se desprende y puedes ver otra. El modelo OSI tiene 7 capas.

modelo osi

Elementos básicos de HTTP

Cuando empieces a trabajar con un proyecto Web, encontrarás las palabras request y response en tu código. Estos serán una abstracción de los mensajes de la comunicación HTTP. Tu trabajo como programador será codificar un response para cada request. Un request contendrá la información necesaria para armar un response para tu cliente. La información que viene en el request será el método – GET/POST/otros – que utilizó el navegador para mandar el mensaje, la ruta – path –, los encabezados – headers –, un mensaje – body –, y otros elementos más.

elementos http

Method

El método que usa un navegador, para comunicarse con el servidor, puede tener diferentes significados para el programador. Imagina la comunicación con tu celular, cuando recibes un mensaje, puede que sea para que ese mensaje quede registrado y no se te olvide, a diferencia de cuando recibes una llamada, que puede ser algo efímero.

Los métodos comunes que utiliza un navegador para comunicarse son GET/POST. Pero hay más: PUT, PATCH, DELETE, y otros. Los métodos los veremos más a fondo cuando tengamos la oportunidad de programar un servicio HTTP.

Headers

Los headers contienen información del request del cliente. Algo fundamental en la programación Web es que, los headers nos permiten extender el protocolo HTTP.

Path

El path es parte del request que nos indicará que response queremos entregarle al navegador. Dependiendo de la ruta que nos pida el cliente, nosotros podemos verificar si un usuario tiene los permisos necesarios para ver dicha ruta, además de que poca o mucha información le queremos mostrar.

Body

El body de un request representa información adicional que nos envía el navegador. Lo más común que encontrarás, al empezar en la programación Web es, el body representa la información en una forma que el usuario acaba de enviar a tu servicio HTTP.

Ejercicio

Ahora que conoces un poco más de HTTP te invito a que veas un request y un response en tu propio navegador.

  1. Dependiendo del navegador que utilices, da clic derecho en esta página y selecciona “inspect element”
  2. Busca una pestaña que se llame “network”.
  3. Vuelve a cargar la página
  4. Si estas en la pestaña correcta, verás todos los requests que hizo el navegador para cargar la página.
  5. Si das clic en uno, podrás ver más información acerca del request y además de la respuesta que viene del servidor.