Cómo funciona HTTP y por qué es importante: explicado en un lenguaje sencillo

Imagina que tu casa es una computadora enorme. En lugar de Goodison Street o 4th Avenue, la dirección de su casa consta de números. Por ejemplo: 112.231.31.20.

Como en una película futurista, su ciudad se compone principalmente de robots de alta tecnología en el cielo que van de casa en casa, entregando sus mensajes y llevando respuestas.

¿Tienes la foto?

Una descripción general de cómo funciona Internet

Ligeramente simplificado, esto es lo que sucede cuando escribe una dirección web en su navegador:

  • Encuentra la dirección de la "casa" donde desea enviar la solicitud
  • Envía la solicitud utilizando el cartero robótico.
  • Espera pacientemente la respuesta del cartero robótico.

Ahora, todo esto se abstrae de usted como usuario final. Escribe la dirección web en el navegador y la página web aparece ante sus ojos, como por arte de magia.

Como cualquier tecnología suficientemente avanzada, el usuario medio no podría utilizar Internet sin estas abstracciones.

La mayoría de las veces, no necesita preocuparse por cómo funciona algo, solo necesita saber que funciona.

Pero para ciertos temas, es útil sumergirse un poco más en las tuercas y los tornillos, o simplemente rasca esa picazón de curiosidad.

No se convertirá en un experto en los detalles técnicos de Internet leyendo este artículo, lo que requerirá mucho más tiempo y esfuerzo, pero obtendrá una vista panorámica y una mejor comprensión.

Si encuentra que desea obtener más información, tengo una lista de reproducción en YouTube que profundiza más.

El sistema de mensajería

De la metáfora al comienzo de este artículo, aprendimos que Internet consiste en mensajes que se transmiten. En su mayor parte, estos mensajes se envían utilizando lo que se conoce como protocolo HTTP.

Protocolo. Esa es una palabra aterradora. Eso es un brillo de ojos y cerrar el tipo de palabra de su navegador. Así que vamos a dividirlo en términos más fáciles.

Un protocolo es solo una palabra elegante para un acuerdo.

Dejémoslo más claro con una analogía.

Digamos que tú y tu mejor amigo se dejan mensajes secretos. Cuando encuentras un papel en la puerta de tu casa con la palabra “ballfoot”, sabes que tu amigo quiere verte para jugar al fútbol esta noche a las 20:00.

Lo sabe porque estuvo de acuerdo en que la palabra “pie de pelota” en un papel entregado en su casa representa una invitación a jugar.

Ahora, surge un problema cuando empiezas a dejarles a tus otros amigos la nota "ballfoot" sin decirles el significado secreto. No sabrían qué hacer con la información.

Encontrarían la nota en la puerta de su casa, se rascarían la cabeza por un minuto y luego seguirían jugando a Fortnite en su sala de estar. Y tú y tu otro amigo pasarían la pelota entre ustedes. De ida y vuelta. De ida y vuelta. Hasta que el aburrimiento se vuelve insoportable y ambos se van a casa.

Pero no tiene por qué ser así. ¿Qué pasa si les dices a tus amigos cuál es el significado de "pie de pelota"? Ahora todos tus amigos sabrían y compartirían el acuerdo de que la nota con el mundo “ballfoot” significa presentarse y jugar al fútbol en la cancha local a las 20:00.

Éxito.

Esto es, en esencia, lo que representa el protocolo HTTP. Hemos acordado que si enviamos un mensaje de una manera particular, el servidor lo entenderá y dará una respuesta a cambio.

La estructura del mensaje

Echemos un vistazo más de cerca al acuerdo HTTP. Consiste en solicitudes y respuestas. En pocas palabras, pide algo y luego obtiene una respuesta de algo conocido como servidor.

Antes de continuar, modifiquemos nuestra metáfora desde el principio para comprender mejor los ciclos de solicitud / respuesta HTTP.

¿Recuerdas a los robots que iban de casa en casa llevando mensajes? Ahora imagina que todos esos robots pertenecen a alguien.

Tienes tu propio robot personal y puedes pedirle que vaya a cualquier dirección (dirección IP) con mensajes. Una vez que su robot llegue con su mensaje a la dirección indicada, entrará y proclamará audazmente que tiene un mensaje que entregar. Entonces hablará el mensaje.

Por el bien de la metáfora, imagina que las puertas de las casas (servidores) son como la entrada a las minas de Moria en El señor de los anillos. Solo si las palabras se dicen correctamente, la puerta se abrirá y te dejará entrar.

En este caso, solo si sus robots dicen el mensaje de una manera específica, recibirán un mensaje de respuesta para llevárselo.

Este es el protocolo HTTP en funcionamiento. Existe un conjunto predefinido de reglas que rigen el aspecto de los mensajes de solicitud y respuesta.

En este punto, es posible que se esté preguntando de dónde provienen estos mensajes. Ciertamente, no los escribe usted mismo cuando ingresa la dirección del sitio web en su navegador web.

Bueno, todo lo gestiona automáticamente el navegador. Cuando escribe una dirección, su navegador se encarga de redactar el mensaje de solicitud HTTP por usted y lo envía al servidor. El mensaje de solicitud HTTP se ve así:

GET / HTTP/1.1 Host: google.com User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9, image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 ...etc

Parece aterrador, ¿verdad?

Menos mal que el navegador hace esto por nosotros.

Vamos a echar un vistazo más de cerca a tan sólo la primera línea: GET / HTTP/1.1. Esta línea hace que su robot vaya a la casa de Google y diga: "¿Puedo recibir lo que tenga en la raíz de su sitio?" (Esto significa que queremos recuperar lo que está en www.google.com, no en www.google.com/home).

Así que ahora hemos entregado nuestro mensaje a la casa de Google (el servidor) de la manera correcta. Las puertas se iluminan y se abren.

Dentro ves otro robot. Detrás hay una serie de cajas de seguridad marcadas con texto como GET / HTTP/1.1y GET /search HTTP/1.1. Si su solicitud coincide con una de esas cajas de seguridad, el robot la desbloqueará y le dará a su robot el contenido, lo que le pedirá que regrese rápidamente con la respuesta.

La respuesta

La respuesta que reciba se verá así:

HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT Content-Length: 88 Content-Type: text/html Connection: Closed

Ahora, nunca verá esta respuesta a menos que realmente desee inspeccionarla en las herramientas de desarrollo de su navegador. Sin embargo, lo recibes.

Lo que sucede a continuación depende del tipo de respuesta que reciba y de lo que haya dentro de la caja de seguridad del servidor.

En muchos casos, lo que recibe a cambio es un documento HTML. HTML representa la estructura de las páginas web y define lo que debe mostrar el navegador.

Si va a www.google.com, recibirá un archivo HTML a cambio que define cómo se mostrará el sitio google.com en su navegador.

Si tiene algo de tiempo, este video de 11 minutos profundiza en las solicitudes y respuestas HTTP:

Conclusión

En este artículo, hemos revisado cómo funciona Internet y cómo usamos HTTP para comunicarnos en Internet.

Descubrimos que el protocolo HTTP se usa para comunicarse entre navegadores y servidores en Internet y consiste en un estándar generalmente acordado sobre cómo se envían y reciben las solicitudes.

También exploramos la importancia de tener tales estándares de comunicación y los beneficios de tener un estándar generalmente acordado.

There are many more facets to understanding how the internet works and what kinds of responses you can receive.

If you have a moment, this 18 minute video teaching your how to build a web server will review a lot of the topics covered in this article, and go over some new ones:

Now you should have a general understanding of how communication on the internet works.

If you think someone else could benefit from this article, please spread the word. And if you want to know when I post more content, you can subscribe to my YouTube channel, or you can follow me @foseberg on Twitter.