HTTP

Conoce el proceso de comunicación en HTTP

miércoles, 6 de enero de 2021 | Comentarios

Escrito por

¿Qué tal oír el contenido?

HTTP son las siglas de Hypertext Transfer Protocol, que en una traducción libre significa Protocolo de Transferencia de Hipertexto. Es el principal protocolo de comunicación entre las computadoras que utilizan Internet.

HTTP es una especie de director, que gobierna todo lo que ocurre en la web. Por eso es tan importante que los desarrolladores entiendan como funciona y lo que realmente sucede detrás de “las cortinas”. Es decir, saber como se envía y se recibe la información al diario.

Eso es lo que abordaremos en este contenido. ¡Compruébalo!

¿Qué es HTTP?

HTTP es un protocolo en la capa de aplicación, es decir, debe implementarse en el software responsable por la comunicación, como los navegadores y los servidores web.

Siempre trabajará junto con otros dos protocolos:

  1. TCP (Transmission Control Protocol): responsable de la transferencia de información;
  2. IP (Internet Protocol): se encarga de la transmisión de datos, formando el conocido modelo TCP/IP.

Esta comunicación realizada por HTTP sigue el modelo de solicitud y respuesta. Así que, cuando abres el navegador para acceder a un sitio web, estás solicitando información al servidor; que, a su vez, recibirá la solicitud, hará los procesos internos adecuados y devolverá una respuesta.

Esta respuesta suele ser el contenido HTML, que será interpretado por el navegador, generando el contenido del sitio web al que se accede.

Después de este proceso de solicitud del navegador y respuesta del servidor, la conexión se termina y es necesario repetir todo el ciclo cada vez que se hace una nueva acción.

Esto significa que la conexión no es persistente. Con cada acceso o actualización del contenido, se crea una nueva conexión HTTP y se repite todo el ciclo.

Vale la pena recordar que el HTTP no solo se usa en el navegador. En las aplicaciones móviles, por ejemplo, está muy presente, ya que la mayoría de estas se comunica con el back-end a través de este protocolo.

Pero, ¿cómo funciona la comunicación entre el cliente y el servidor en HTTP? Se realiza en formato de texto, con un patrón bien definido.

A continuación, mostraremos la estructura del request y response.

¿Cómo se hace la solicitud en el servidor?

Todo comienza con la solicitud hecha por el servidor. Está formado por las siguientes partes:

1 – Línea de pedido

Se compone de 3 informaciones:

  1. Identificador de método, que es el tipo de acción que se espera del servidor. Hay alrededor de 8 métodos diferentes, pero los más populares son el “Get and Post”;
  2. URL del recurso, la dirección a la que se enviará la solicitud, como “/index.php”;
  3. Versión del protocolo, hay actualmente 4 versiones: HTTP 0.9, HTTP 1.0, HTTP 1.1 y HTTP 2. De estos, la versión 1.1 es la más adoptada por los sistemas.

2 – Encabezado

Este es el lugar donde se pasa las informaciones adicionales para la requisición. El servidor puede responder de manera diferente, dependiendo de los campos y valores que contenga.

Se puede dividir en 3 grupos:

  1. Encabezado general;
  2. Encabezado de la solicitud;
  3. Encabezado de la entidad.

La mayoría de los campos se explican por sí mismos y algunos de los más comunes son:

  • Date, que te dice la fecha de la solicitud;
  • Cache-Control, que envía directivas al mecanismo de caché;
  • Transfer-Encoding, especifica como decodificar el cuerpo de la solicitud;
  • Cookie, envía información sobre los cookies;
  • Accept, que especifica la preferencia de respuesta;
  • User-Agent, envía información sobre el navegador.

Es importante señalar que el cliente es libre para enviar cualquier tipo de información en el encabezado; incluyendo campos con nombres personalizados, que pueden generar comportamientos específicos por parte del servidor.

3 – Cuerpo o mensaje

Contiene los datos de la propia solicitud. En un envío de formulario HTML, por ejemplo, las informaciones permanecerían en el cuerpo. Mira este ejemplo de request:

HTTP

Y la estructura de la respuesta, ¿cómo funciona?

Una vez que se hace la solicitud, es hora de analizar la respuesta que el servidor puede ofrecer. Su formato también está compuesto de 3 partes:

1 – Línea de estado

Consiste en 3 piezas principales de información:

  • Versión del protocolo, que, como en la línea de solicitud, se informará de la versión utilizada en el servidor;
  • Código numérico del status, que es el número compuesto de tres dígitos que corresponde a como nuestra petición fue condicionada en el servidor;
  • Texto asociado al status.

Una de las informaciones más importantes de una respuesta es el código de status. Por medio de él, es posible saber si tu solicitud se ha realizado con éxito, si has tenido algún problema o alguna reorientación.

En otras palabras, describe como tu solicitud fue procesada por el servidor.

El primer dígito del status corresponde a la categoría a la que pertenece. Hay 5 categorías en total:

  • 1xx Informational, significa que el pedido ha sido recibido y aún está siendo procesado;
  • 2xx Success, el pedido fue recibido, aceptado y procesado con éxito;
  • 3xx Redirection, representa las acciones adicionales que se deben tomar para completar la petición;
  • 4xx Client Error, demuestra que el pedido es incorrecto o no puede ser procesado;
  • 5xx Server Error, significa que el servidor no pudo procesar la solicitud, aunque parece ser correcto.

Dentro de estos grupos, hay una serie de códigos, cada uno dirigido a comportamientos específicos. Los más comunes son el 404 Not Found y el 500 Internal Server Error.
Otro detalle importante es que el estado que viene del servidor es semántico, es decir, no hay obligación de utilizarlos.

2 – Encabezado

Es similar al encabezado del request. Por lo tanto, aportará informaciones adicionales sobre tu solicitud y el contenido de tu respuesta. Tiene campos específicos, como:

  • Content-Type, que es el tipo de contenido que se envió en la respuesta;
  • Access-Control-Allow, que indica si se puede acceder a la respuesta desde la fuente de la solicitud;
  • Date, que es la fecha de la respuesta que se generó.

Al igual que en la solicitud, el desarrollador es libre de enviar informaciones personalizadas en este campo, si es necesario.

3 – Cuerpo

Es el mensaje que el navegador interpretará; normalmente es HTML o XML.

Mira un ejemplo básico de response:

HTTP

Aunque parece ser un proceso complejo, esta comunicación se realiza rápidamente, en menos de 1 segundo.

Para estar al tanto de los nuevos contenidos creados por HostGator, ¡suscríbete a nuestra newsletter!

Comentarios
Presiona Enter para buscar o ESC para cerrar