Qué pasa cuando escribes una URL — DNS, HTTP y HTTPS

Este artículo forma parte del curso Fundamentos de informática, que construye desde cero los conocimientos prácticos de informática que necesitas como mínimo para programar y hacer vibe coding.
Una URL se puede leer en cuatro partes. Los diagramas siguen el DNS, que convierte un nombre en un número, el HTTP, que trae el contenido, y el HTTPS, que impide que se lea por el camino.

Este artículo trata lo que pasa desde que escribes una URL hasta que aparece la pantalla.

Aparecen tres cosas: el DNS, que convierte un nombre en un número; el HTTP, que intercambia el contenido; y el HTTPS, que impide que se lea ese tráfico.

La línea que escribiste se divide en cuatro partes
http://localhost:3000/reserveIniciohttpMediolocalhostNúmero:3000Final/reserveCon qué reglasse envíaQué computadoraQué programaQué página
Arriba está la línea que escribiste. La fila del medio son sus partes y la de abajo es a qué responde cada una. Hacen falta las cuatro juntas para decidir a dónde se envía qué.

Hacen falta las tres juntas para decidir a dónde se envía qué.

La URL es una cadena que indica qué página de qué computadora

Esa cadena que escribes siguiendo las instrucciones es la URL (Uniform Resource Locator: una cadena que indica en una sola línea en qué computadora está la página que quieres abrir y dónde está dentro de ella).

Qué contiene una URL de una línea
Una línea de URL (http://localhost:3000/reserve)
Inicio — http
  • Esta parte es todo lo que va antes de «://»
  • Si aquí pone https, lo que envías va cifrado
Medio — el dominio (domain name)
  • Un nombre legible para las personas que se le da a una computadora de Internet
  • Un servidor público recibe un nombre como example.com
  • localhost, que se usa en local, es un nombre fijo que indica la propia computadora en la que se escribe
  • Aquí se decide a qué computadora llega la solicitud
Número — el número de puerto (port number)
  • El número que indica a qué programa dentro de una computadora llega la solicitud
  • Varios programas pueden esperar solicitudes a la vez, así que este número elige a uno
  • http está fijado en el 80 y https en el 443, así que esos números no se escriben
Final — /reserve
  • Empieza por «/» y es la posición de una página dentro del mismo servidor
  • Si se omite, se abre la página de entrada de ese servidor
El marco exterior es la línea http://localhost:3000/reserve. De arriba abajo: las reglas de envío, qué computadora, qué programa dentro de ella y qué página.

Quien divide la línea en estas cuatro partes es el propio navegador.

La URL se lee en cuatro partes

La URL es una línea que une cuatro partes.

El inicio son las reglas de envío, el medio es qué computadora, el número es qué programa dentro de ella y el final es qué página; la URL local y la URL pública están hechas de las mismas cuatro partes y solo cambian los caracteres que llevan.

Desde que escribes una URL hasta que aparece la pantalla — DNS y HTTP

Ese número es la dirección IP que vimos en el artículo anterior.

Las reglas para averiguar la dirección IP a partir del dominio son el DNS (Domain Name System), y las reglas con las que el navegador y el servidor intercambian solicitudes y respuestas son el HTTP (HyperText Transfer Protocol).

El que guarda las correspondencias del DNS y responde a las consultas es el servidor DNS.

Lo que envía el navegador es la solicitud y lo que vuelve es la respuesta, y desde que escribes una URL hasta que aparece la pantalla, el navegador se conecta con dos destinos, uno después de otro.

El navegador se conecta con dos destinos, uno después de otro
Navegador① Preguntar elnombre al DNSSolo el número203.0.113.5El contenido de lapágina no vuelve② Conectar aese númeroMira /reserve yelige qué devolverEl contenido de lapágina sí vuelve
Desde el navegador de la izquierda salen dos líneas, una arriba y otra abajo. La de arriba es el primer destino, el servidor DNS, y la de abajo es el segundo, el servidor Web; lo que vuelve es distinto.

El orden es: primero convertir el nombre en un número y después ir a buscar el contenido.

El servidor DNS con el que se conecta primero devuelve solo un número; no devuelve el contenido de la página.

El contenido lo tiene el servidor al que se llega con ese número, que mira el /reserve del final de la URL antes de elegir qué devolver.

En el mismo servidor, /reserve y /login eligen contenidos distintos.

La respuesta que vuelve lleva un número de tres cifras y el contenido de la página, y en la pantalla solo aparece el archivo del contenido.

Convertir el nombre en un número y después recibir el contenido

El navegador hace cuatro cosas: leer, preguntar, recibir y dibujar.

Divide en cuatro partes la URL que escribiste, le pregunta el número al servidor DNS y pide la página a ese número.

El servidor mira el final de la URL, elige qué devolver y lo devuelve junto con un número que indica si salió bien.

El HTTPS son las reglas para que no se lea el contenido por el camino

En el tráfico que empieza por http, los caracteres que escribiste circulan tal cual, así que los equipos del camino pueden leer el contenido.

Lo que lo evita es el HTTPS (HyperText Transfer Protocol Secure), que intercambia lo que envías con cifrado (encryption: convertir el contenido en una forma que nadie salvo el destinatario acordado puede revertir).

Con los mismos caracteres, http y https cambian lo que se ve por el camino
Escribespassword123Enviar por httpLos equipos delcamino lo leenEl servidor leelo que escribisteEnviar por httpsEn el camino solose ve el destinoEl servidor lorevierte y lee
A la izquierda están los mismos caracteres escritos. La ruta de arriba es http y la de abajo es https. Los caracteres que lee el servidor son los mismos en las dos; lo único distinto es la ruta del centro.

Los caracteres que lee el servidor son los mismos en las dos, y lo único distinto es lo que ven los equipos del camino.

Con https también se ve por el camino a qué servidor va el tráfico.

Lo que no se ve es qué página abriste y qué escribiste.

En un envío por https, qué se sabe por el camino y qué no
Un envío hechopor httpsLo que ven losequipos del caminoLo que no puedenleer esos equiposEl destinoexample.comContraseña escritay contenidoEl sitio visitadoqueda registradoAunque lo vean, nopueden leerlo
El único envío de arriba se divide en dos, a izquierda y derecha. Solo el de la izquierda lo ven los equipos del camino; el de la derecha no. La fila de abajo es lo que se deriva de eso.

El HTTPS incluye también un mecanismo para comprobar que el otro lado es el dueño de ese dominio.

Quien emite el certificado no es el propio servidor, sino una autoridad de certificación (certificate authority: un tercero que comprueba quién es el dueño de un dominio y emite certificados).

Dentro del certificado está la clave pública (public key: una clave que se le puede dar a cualquiera) que se usa para comprobar que el otro lado es auténtico.

Primero se comprueba y el cifrado viene después.

La clave se crea cuando ya se sabe que el otro lado es el dueño, así que aunque un equipo se meta en medio no puede leer el contenido.

El https impide que se lea el contenido

La diferencia entre http y https es solo si el contenido se puede leer por el camino.

Con http los caracteres circulan tal cual y los equipos del camino pueden leer el contenido; con https los caracteres se convierten antes de enviarlos, así que por el camino solo se llega a saber el nombre del destino.

QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

Pregunta 1En el http://localhost:3000 de las instrucciones, ¿a qué computadora apunta localhost?

Pregunta 2¿Qué mecanismo toma un dominio como example.com y averigua la dirección IP que se usa para comunicarse?

Pregunta 3¿Cuál es la diferencia entre una URL que empieza por https y una que empieza por http?