Cómo funciona la web para los científicos de datos (Guía CS50)

Lecciones de informática para científicos de datos: Cómo funciona la web

Esta publicación traduce conceptos informáticos fundamentales sobre la web en modelos mentales prácticos que le ayudarán a construir canales de datos más robustos y eficientes.

¿Tiene dificultades para depurar una llamada a la API fallida, le desconcierta la lentitud de las transferencias de datos desde un depósito en la nube o intenta comprender la estructura de un sitio web para un trabajo de scraping? Estas frustraciones comunes en la ciencia de datos suelen deberse a una falta de comprensión de los mecanismos fundamentales de internet. Si bien estos temas podrían parecer dominio exclusivo de los desarrolladores web, comprender cómo se mueven los datos del punto A al punto B es una herramienta poderosa para cualquier profesional de datos. Para desarrollar esa intuición, esta publicación sintetiza los conceptos fundamentales de redes de la conferencia CS50x 2025 de Harvard sobre programación web.

Cómo funciona la web para los científicos de datos

1. Internet no es una línea recta

Cuando tu código solicita datos de un servidor remoto, es fácil imaginar que la información viaja en línea recta. La realidad es más compleja. Internet es una vasta red de computadoras interconectadas, o "routers", cuyo único propósito es transmitir información.

Piensa en tu solicitud de datos como un "sobre virtual". Tu ordenador la entrega al router más cercano, que decide a qué router pasarla. Este proceso se repite, con el sobre "saltando" entre servidores hasta llegar a su destino. La ruta elegida no es necesariamente la distancia geográfica más corta. Los routers utilizan software para optimizar la ruta en función de la velocidad, la carga del servidor e incluso por motivos económicos, como mantener el tráfico en la red de un proveedor específico para evitar comisiones. Si una transferencia requiere más de 30 de estos saltos, probablemente esté atascada en un bucle.

Conexión con la ciencia de datos: Para un científico de datos, este concepto proporciona un modelo mental eficaz para la latencia de red. Al extraer datos de un servicio en la nube como AWS S3 o consultar una base de datos remota, el tiempo que tardan los datos en transmitirse a través de internet influye directamente en el rendimiento del flujo de datos. No se trata de un concepto abstracto, sino de una realidad física que puede generar retrasos que es necesario tener en cuenta.

2. Sus datos se cortan y se vuelven a ensamblar

Un solo archivo grande, como una imagen de alta resolución o un conjunto de datos de varios gigabytes, no se envía por internet en una sola pieza. El protocolo subyacente de internet, TCP/IP, divide grandes fragmentos de información en fragmentos más pequeños. Como ilustra la clase de CS50, la imagen de un "gato feliz" se divide metafóricamente en cuatro partes.

Cada fragmento se coloca en su propio sobre virtual, llamado paquete. Para garantizar que el receptor pueda recomponer el paquete correctamente, el Protocolo de Control de Transmisión (TCP) añade un número de secuencia a cada paquete (p. ej., "1 de 4", "2 de 4", "3 de 4"). Esto permite al ordenador receptor reensamblar los fragmentos en el orden correcto y, crucialmente, detectar si se perdió algún paquete en el proceso.

Conexión con la ciencia de datos: La robustez de TCP/IP es lo que permite que conceptos avanzados de ingeniería de datos, como la segmentación y el procesamiento distribuido, funcionen de manera confiable. Al ingerir archivos grandes en lotes o usar un marco como MapReduce para dividir una tarea grande en partes más pequeñas, se opera a un nivel de abstracción superior, pero el principio subyacente es el mismo. La garantía de integridad de los datos que ofrece este protocolo es fundamental para cualquier canalización de datos.

3. Un servidor, muchos roles: el rol de los puertos

Una dirección IP envía tu paquete de datos al ordenador correcto, pero no especifica qué aplicación de ese ordenador debe recibirlo. Un mismo servidor podría ejecutar simultáneamente un servidor web, un servidor de correo electrónico y un servidor de bases de datos. Aquí es donde entran en juego los puertos.

Un puerto es un identificador numérico único para un servicio específico que se ejecuta en un servidor. Con el tiempo, se ha establecido un conjunto de puertos estándar: el puerto 80 se usa típicamente para el tráfico web estándar (HTTP), el puerto 443 para el tráfico web seguro (HTTPS) y el puerto 25 para el correo electrónico. Los puertos permiten que un solo servidor con una sola dirección IP "multiplexe" sus servicios, garantizando que la solicitud de una página web se dirija al servidor web y no al servidor de correo electrónico. De este modo, una dirección IP envía un paquete a la máquina correcta y un número de puerto lo envía a la aplicación correcta en esa máquina: un sistema de direccionamiento de dos niveles esencial para la web moderna y multitarea.

Conexión con la ciencia de datos: Esto es inmediatamente práctico en nuestro trabajo diario. Al conectarnos a una base de datos PostgreSQL, el estándar... :5432 you append to the IP address is precisely this concept in action, directing your request to the database application. When you deploy a model via an API or run a Jupyter server on your local machine, you are using ports (like localhost:8888) to expose that specific service to network requests.

4. DNS: El diccionario gigante en caché de Internet

Los humanos no navegan por la web escribiendo cadenas de números como 142.250.191.78. We use human-friendly domain names like google.com. The system that translates these names into machine-readable IP addresses is the Domain Name System (DNS).

Funcionalmente, el DNS es una implementación masiva y distribuida del tipo de dato abstracto "diccionario". Asocia claves (nombres de dominio) con valores (direcciones IP). Para gestionar la inmensa escala de internet y proporcionar respuestas rápidas, el DNS es jerárquico y depende en gran medida del almacenamiento en caché. Su ordenador, su red local y su proveedor de servicios de internet (ISP) almacenan en caché las búsquedas DNS recientes para evitar tener que consultar repetidamente la misma dirección a los servidores raíz.

Conexión con la ciencia de datos: Este principio de almacenamiento en caché distribuido a gran escala es un patrón fundamental que utilizamos constantemente en la ciencia de datos. Sirve como una poderosa analogía práctica para técnicas como la memorización en una función de Python, el almacenamiento en caché de los resultados de una consulta lenta a una base de datos o el almacenamiento de dataframes intermedios en disco. El DNS es un ejemplo a escala planetaria de una caché distribuida de clave-valor que hace posible la web moderna.

5. Códigos de estado HTTP: su brújula de depuración

Cuando su navegador (el cliente) solicita una página de un servidor, la respuesta del servidor comienza con un código de estado HTTP de tres dígitos. Este código proporciona un resumen conciso de si la solicitud se realizó correctamente o qué tipo de error se produjo.

Los códigos están agrupados en categorías:

  • 200s (200 OK): La solicitud se realizó correctamente.
  • 300s (301 Moved Permanently): Has sido redirigido. La conferencia da el ejemplo de safetyschool.org which returns a 301 code to redirect the browser to Yale’s website.
  • 400s (404 Not Found): Se produjo un error del cliente. Esto significa que el error es tuyo: solicitaste un recurso inexistente o no tienes autorización para acceder a él.
  • 500s (500 Internal Server Error): Se produjo un error en el servidor. El servidor tuvo un problema al intentar procesar tu solicitud válida.

Conexión con la ciencia de datos: Para cualquiera que trabaje con API o web scraping, comprender estos códigos es la diferencia entre un error vago de "solicitud fallida" y la información de diagnóstico procesable. 404 error tells you to check your URL endpoint, while a 403 Forbidden error tells you to check your API key. A 500 error means the problem is likely with the service itself.

“…siempre que veas un 500, también es tu culpa, así que en ese caso, tanto tú como el usuario son el servidor…” — Harvard CS50x 2025 (YouTube) — Clase: HTML, CSS, JavaScript

6. HTML es para estructura, no para estilo

El lenguaje de marcado de hipertexto (HTML) es el lenguaje estándar para crear páginas web. Es un lenguaje de marcado, no un lenguaje de programación; su propósito es describir y estructurar el contenido, no ejecutar lógica. HTML utiliza "etiquetas" (como <p> for a paragraph or <div> for a division) and “attributes” (like class información id) to define elements.

Cuando un navegador recibe un archivo HTML, analiza el texto para construir una estructura de datos en forma de árbol en memoria, denominada Modelo de Objetos de Documento (DOM). Este árbol representa la estructura de la página. El HTML moderno enfatiza el uso de etiquetas semánticas como <header>, <main>, and <footer>. These tags don’t just create boxes on a page; they give meaning to the structure, helping search engines, accessibility tools, and AI models understand the relative importance of different content sections.

Conexión con la ciencia de datos: En ciencia de datos, un conocimiento profundo del DOM es fundamental para el web scraping. Para extraer un dato específico de una página, un programa de scraping debe navegar por este árbol DOM, seleccionando elementos por sus etiquetas, clases o ID. Este principio de «separación de responsabilidades» —usar HTML para la estructura y un lenguaje aparte (CSS) para el estilo— tiene un fuerte paralelismo con el principio de «datos ordenados», donde la estructura lógica de un conjunto de datos debe ser independiente de su presentación final.


Qué aplicar hoy

  • Cuando falla una llamada API, verifique el código de estado HTTP (por ejemplo, 404 vs. 500) para diagnosticar si el error está de su parte o del servidor.
  • Utilice las “Herramientas para desarrolladores” de su navegador (haga clic derecho -> Inspeccionar) para ver la pestaña Red y ver las solicitudes y respuestas reales que realiza su navegador.
  • Antes de raspar un sitio, inspeccione su estructura HTML para identificar las etiquetas, clases o ID específicos que contienen los datos que necesita.
  • Al conectarse a una base de datos o API, observe el número de puerto y reconozca que está dirigiendo su solicitud a la aplicación correcta en el servidor.
  • La próxima vez que encuentre un retraso en la transmisión de datos, piense en el almacenamiento en caché de DNS; una búsqueda lenta o un caché obsoleto podrían ser un factor.

Cierre

Estos conceptos no son meros detalles teóricos para los desarrolladores. Desde el enrutamiento físico de paquetes (TCP/IP) hasta el direccionamiento lógico de servicios (DNS, puertos) y el lenguaje de las solicitudes (HTTP), estos protocolos por capas conforman el sistema invisible del que dependen nuestros flujos de datos. Comprender cómo se mueven y se estructuran los datos proporciona una comprensión más intuitiva de los cuellos de botella de rendimiento, el diagnóstico de errores y la extracción de datos. El siguiente paso en esta serie de conferencias consiste en dinamizar el contenido web con JavaScript, el motor que impulsa las visualizaciones de datos interactivas que utilizamos a diario.

¿Cómo podría una mejor comprensión de estos protocolos cambiar la forma en que diseña su próximo script de recopilación de datos?

Base: Harvard CS50x 2025 (YouTube).

Mensajes similares