¿Qué es el internet?
El internet es una red de redes. No se trata de una sola máquina o empresa, sino de millones de redes independientes que acuerdan hablar los mismos protocolos para poder transferirse datos entre sí. Ese acuerdo es lo que permite que una laptop en un país se comunique con un servidor en otro en una fracción de segundo.
La World Wide Web es solo un servicio que se ejecuta sobre esta red, utilizando HTTP, URLs y navegadores. El internet transporta mucho más: correo electrónico, videollamadas, transferencia de archivos y un sinfín de otras aplicaciones. Comprender la red subyacente explica por qué la web se comporta de la manera en que lo hace.
Clientes y servidores
Casi todo en la web sigue un modelo cliente-servidor. Un cliente envía una solicitud y un servidor envía una respuesta.
- El cliente suele ser un navegador, pero también puede ser una aplicación móvil, un script u otro servidor.
- El servidor es una computadora que escucha las solicitudes y devuelve recursos como HTML, JSON, imágenes o archivos.
Este ciclo de solicitud/respuesta es el corazón de la web. Cada carga de página, llamada a una API y descarga de imágenes consiste en uno o más de estos intercambios.
Direcciones IP y paquetes
Cada dispositivo en la red tiene una dirección IP, similar a una dirección postal para los datos. Cuando envías algo, este se divide en paquetes: pequeños fragmentos de datos, cada uno etiquetado con una dirección de origen y una de destino.
Los paquetes viajan de forma independiente. Los routers en el camino reenvían cada uno hacia su destino, y pueden tomar rutas diferentes. La máquina receptora los vuelve a ensamblar para recuperar el mensaje original. Este diseño, llamado conmutación de paquetes (packet switching), es lo que hace que internet sea resiliente: si una ruta falla, los paquetes pueden tomar otro camino.
La capa de transporte: TCP y UDP
IP hace que los paquetes lleguen a una máquina, pero no garantiza que lleguen en orden ni que lleguen en absoluto. Esa es la función de la capa de transporte.
- TCP establece una conexión y proporciona un flujo ordenado y fiable. Retransmite los paquetes perdidos y es lo que utiliza HTTP.
- UDP no requiere conexión y no garantiza la entrega. Es más rápido y se utiliza para video en vivo, juegos y DNS.
Sobre TCP, TLS cifra la conexión para que nadie en el medio pueda leerla o alterarla. HTTPS es simplemente HTTP sobre TLS.
DNS: de nombres a direcciones
Las personas recuerdan nombres, no números. El DNS (Domain Name System) es la agenda telefónica que mapea un nombre como example.com a una dirección IP.
Cuando visitas un dominio, tu computadora le pregunta a un resolver, el cual consulta una jerarquía de servidores de nombres hasta llegar al servidor autoritativo. La respuesta se almacena en caché durante un periodo determinado para que las búsquedas repetidas sean instantáneas. La guía de DNS cubre los detalles.
HTTP: el lenguaje de la web
Una vez establecida la conexión, el navegador y el servidor se comunican mediante HTTP. El cliente envía una solicitud con un método (como GET o POST), una ruta y headers; el servidor responde con un código de estado, headers y un cuerpo.
GET /index.html HTTP/2
Host: example.com
Accept: text/html
HTTP/2 200 OK
Content-Type: text/html
Content-Length: 1256
<!doctype html> ...
La guía de HTTP cubre los métodos, códigos de estado, headers, cookies y almacenamiento en caché.
Qué sucede cuando visitas una página
En resumen, la carga de una página funciona así:
- Resolución del dominio mediante DNS para obtener una dirección IP.
- Conexión a esa dirección a través de TCP.
- Handshake con TLS para establecer un canal cifrado.
- Solicitud del HTML a través de HTTP.
- Parseo del HTML para descubrir el CSS, JavaScript, imágenes y fuentes.
- Solicitud de cada uno de esos recursos, a menudo en paralelo, y renderizado de la página.
Cada recurso adicional repite parte de este proceso, razón por la cual tener menos solicitudes y activos más pequeños hace que las páginas sean más rápidas. La guía de Browsers & Rendering comienza a partir del paso 5.
Routers, ISPs y el backbone
Entre tú y un servidor existen múltiples redes. Tu tráfico sale a través de tu ISP, atraviesa redes regionales y nacionales, y puede viajar por cables submarinos entre continentes. Los Routers en cada salto deciden hacia dónde enviar el siguiente paquete basándose en tablas de enrutamiento.
Esto ocurre de forma invisible, pero explica la latencia: cuanto más lejos viajan los datos y más saltos realizan, más tiempo tarda el viaje de ida y vuelta.
CDNs y almacenamiento en caché
Una content delivery network coloca copias de tu contenido en servidores alrededor del mundo, para que los usuarios reciban la información desde una ubicación cercana. Esto reduce la latencia, disminuye la carga en tu servidor de origen y mejora la fiabilidad.
El almacenamiento en caché funciona en varias capas: la caché del navegador, la CDN y el servidor de origen. El uso correcto de los encabezados de caché permite que el contenido se reutilice en lugar de volver a solicitarlo, lo cual es una de las mayores mejoras de rendimiento disponibles.
Mejores prácticas
- Sirve todo a través de HTTPS y redirige el tráfico HTTP a HTTPS.
- Utiliza un CDN para los assets estáticos y el contenido cacheable.
- Configura headers de caché adecuados para que las visitas recurrentes sean rápidas.
- Mantén el número de requests al mínimo y los payloads pequeños.
- Prioriza HTTP/2 o HTTP/3, que permiten multiplexar múltiples requests sobre una sola conexión.
- Monitorea la latencia y el time to first byte, no solo el peso de la página.
Errores comunes
- Confundir el internet con la web.
- Asumir que los datos siguen una única ruta fija.
- Servir contenido sensible a través de HTTP sin cifrar.
- Ignorar el almacenamiento en caché y volver a solicitar todo en cada visita.
- Tratar el DNS como si fuera instantáneo e ignorar los TTL durante las migraciones.
- Ubicar un único servidor en una sola región para dar servicio a una audiencia global.
Próximos pasos
Internet es la base de todo lo que construyes. Profundiza en el protocolo con la guía de HTTP, aprende cómo se resuelven los nombres en la guía de DNS y descubre qué hace el navegador con los bytes en Browsers & Rendering. Después, abre el panel de red de tu navegador y observa cómo se desarrolla la carga de una página real.