Leçons d'informatique pour les data scientists : Comment fonctionne le Web
Cet article traduit les concepts fondamentaux de l'informatique relatifs au Web en modèles mentaux pratiques qui vous aideront à construire des pipelines de données plus robustes et plus efficaces.
Vous peinez à déboguer un appel API défaillant, vous êtes perplexe face à la lenteur des transferts de données depuis un bucket cloud, ou vous tentez de comprendre la structure d'un site web pour une tâche de web scraping ? Ces frustrations courantes en science des données proviennent souvent d'une méconnaissance des mécanismes fondamentaux d'Internet. Bien que ces sujets puissent sembler relever du domaine des développeurs web, une compréhension de base du flux de données entre deux points est un atout précieux pour tout professionnel des données. Pour développer cette intuition, cet article synthétise les concepts clés de la programmation web présentés dans le cours CS50x 2025 de Harvard.

1. Internet n'est pas une ligne droite
Lorsque votre code demande des données à un serveur distant, on imagine facilement que ces informations circulent en ligne droite. La réalité est plus complexe. Internet est un vaste réseau d'ordinateurs interconnectés, ou « routeurs », dont le seul but est de transmettre les informations.
Imaginez votre requête de données comme une « enveloppe virtuelle ». Votre ordinateur la transmet au routeur le plus proche, qui décide ensuite du routeur auquel la faire transiter. Ce processus se répète, l'enveloppe « sautant » d'un serveur à l'autre jusqu'à atteindre sa destination. Le chemin emprunté n'est pas forcément le plus court géographiquement. Les routeurs utilisent un logiciel pour optimiser l'itinéraire en fonction de la vitesse, de la charge du serveur, et même pour des raisons financières, comme le fait de maintenir le trafic sur le réseau d'un fournisseur spécifique afin d'éviter des frais supplémentaires. Si un transfert nécessite plus de 30 sauts, il est probablement bloqué dans une boucle.
Lien avec la science des données : Pour un data scientist, ce concept offre un modèle mental puissant pour appréhender la latence réseau. Lorsque vous extrayez des données d'un service cloud comme AWS S3 ou que vous interrogez une base de données distante, le temps nécessaire aux données pour « transférer » les données sur Internet influe directement sur les performances de votre pipeline. Il ne s'agit pas d'un concept abstrait ; c'est une réalité physique qui peut engendrer des délais dont vous devez tenir compte.
2. Vos données sont découpées puis réassemblées.
Un fichier volumineux unique, comme une image haute résolution ou un ensemble de données de plusieurs gigaoctets, n'est pas transmis en une seule fois sur Internet. Le protocole sous-jacent d'Internet, TCP/IP, divise les informations volumineuses en fragments plus petits. Comme l'illustre le cours CS50, l'image d'un « chat heureux » est métaphoriquement déchirée en quatre morceaux.
Chaque fragment est placé dans une enveloppe virtuelle distincte, appelée paquet. Afin de garantir que le destinataire puisse reconstituer le message correctement, le protocole TCP (Transmission Control Protocol) attribue un numéro de séquence à chaque paquet (par exemple, « 1 sur 4 », « 2 sur 4 », « 3 sur 4 »). Cela permet à l'ordinateur récepteur de réassembler les fragments dans le bon ordre et, surtout, de détecter si des paquets ont été perdus lors de la transmission.
Lien avec la science des données : La robustesse du protocole TCP/IP permet aux concepts d'ingénierie des données de haut niveau, tels que le découpage en segments et le traitement distribué, de fonctionner de manière fiable. Lorsque vous ingérez des fichiers volumineux par lots ou utilisez un framework comme MapReduce pour découper une tâche importante en segments plus petits, vous travaillez à un niveau d'abstraction supérieur, mais le principe sous-jacent reste le même. La garantie d'intégrité des données offerte par ce protocole est essentielle pour tout pipeline de données.
3. Un serveur, plusieurs rôles : le rôle des ports
Une adresse IP permet d'acheminer votre paquet de données jusqu'à l'ordinateur approprié, mais elle ne précise pas quelle application sur cet ordinateur doit le recevoir. Un même serveur peut exécuter simultanément un serveur web, un serveur de messagerie et un serveur de base de données. C'est là qu'interviennent les ports.
Un port est un identifiant numérique unique attribué à un service spécifique exécuté sur un serveur. Un ensemble de ports standard a été établi : le port 80 est généralement utilisé pour le trafic web standard (HTTP), le port 443 pour le trafic web sécurisé (HTTPS) et le port 25 pour la messagerie électronique. Les ports permettent à un serveur unique, doté d’une seule adresse IP, de multiplexer ses services, garantissant ainsi qu’une requête de page web soit acheminée vers le serveur web et non vers le serveur de messagerie. Ainsi, une adresse IP achemine un paquet vers la machine appropriée, et un numéro de port l’achemine vers l’application correspondante sur cette machine — un système d’adressage à deux niveaux essentiel au web moderne et multitâche.
Lien avec la science des données : Cela est immédiatement applicable dans notre travail quotidien. Lorsque vous vous connectez à une base de données PostgreSQL, la norme :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 : Le dictionnaire géant et mis en cache d’Internet
Les humains ne naviguent pas sur le Web en tapant des suites de chiffres comme 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).
D'un point de vue fonctionnel, le DNS est une implémentation massive et distribuée du type de données abstrait « dictionnaire ». Il associe des clés (noms de domaine) à des valeurs (adresses IP). Pour gérer l'immensité d'Internet et garantir des réponses rapides, le DNS est à la fois hiérarchique et repose fortement sur la mise en cache. Votre ordinateur, votre réseau local et votre fournisseur d'accès à Internet (FAI) conservent en cache les requêtes DNS récentes afin d'éviter d'interroger systématiquement les serveurs racine pour la même adresse.
Lien avec la science des données : Ce principe de mise en cache distribuée à grande échelle est un modèle fondamental que nous utilisons constamment en science des données. Il constitue une analogie concrète et pertinente pour des techniques telles que la mémoïsation dans une fonction Python, la mise en cache des résultats d'une requête de base de données lente ou le stockage des dataframes intermédiaires sur disque. Le DNS est un exemple planétaire de cache clé-valeur distribué qui rend le web moderne accessible.
5. Codes d'état HTTP : votre outil de débogage
Lorsque votre navigateur (le client) demande une page à un serveur, la réponse de ce dernier commence par un code d'état HTTP à trois chiffres. Ce code indique brièvement si la requête a abouti ou si une erreur s'est produite.
Les codes sont regroupés en catégories :
- 200s (
200 OK): La requête a abouti. - 300s (
301 Moved Permanently): Vous avez été redirigé. Le cours donne l'exemple desafetyschool.orgwhich returns a301code to redirect the browser to Yale’s website. - 400s (
404 Not Found): Une erreur côté client s'est produite. Cela signifie que l'erreur vient de votre côté : vous avez demandé une ressource inexistante ou vous n'êtes pas autorisé à y accéder. - 500s (
500 Internal Server Error): Une erreur côté serveur s'est produite. Le serveur a rencontré un problème lors du traitement de votre requête valide.
Lien avec la science des données : Pour quiconque travaille avec des API ou le web scraping, comprendre ces codes fait la différence entre une vague erreur « échec de la requête » et des informations de diagnostic exploitables. 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.
« …chaque fois que vous voyez une erreur 500, c’est aussi de votre faute ; vous êtes à la fois l’utilisateur et le serveur dans ce cas… » — Harvard CS50x 2025 (YouTube) — Cours : HTML, CSS, JavaScript
6. HTML sert à structurer, pas à styliser.
Le langage HTML (HyperText Markup Language) est le langage standard de création de pages web. Il s'agit d'un langage de balisage, et non d'un langage de programmation ; son but est de décrire et de structurer le contenu, et non d'exécuter des opérations logiques. HTML utilise des « balises » (comme <p>). <p> for a paragraph or <div> for a division) and “attributes” (like class ou id) to define elements.
Lorsqu'un navigateur reçoit un fichier HTML, il analyse le texte pour construire en mémoire une structure de données arborescente appelée DOM (Document Object Model). Cet arbre représente la structure de la page. Le HTML moderne privilégie l'utilisation de balises sémantiques comme `<html>`. <header>, <main>et <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.
Lien avec la science des données : En science des données, une solide maîtrise du DOM est essentielle au web scraping. Pour extraire une donnée spécifique d'une page, un scraper doit parcourir l'arborescence DOM et sélectionner les éléments par leurs balises, classes ou identifiants. Ce principe de « séparation des préoccupations » – utiliser HTML pour la structure et un langage distinct (CSS) pour la mise en forme – trouve un parallèle important dans le principe des « données propres », selon lequel la structure logique d'un jeu de données doit être indépendante de sa présentation finale.
Que postuler aujourd'hui
- Lorsqu'un appel API échoue, vérifiez le code d'état HTTP (par exemple, 404 ou 500) pour déterminer si l'erreur provient de votre côté ou du serveur.
- Utilisez les « outils de développement » de votre navigateur (clic droit -> Inspecter) pour afficher l'onglet Réseau et voir les requêtes et réponses réelles effectuées par votre navigateur.
- Avant d'extraire des données d'un site, inspectez sa structure HTML pour identifier les balises, classes ou identifiants spécifiques contenant les données dont vous avez besoin.
- Lors de la connexion à une base de données ou à une API, notez le numéro de port et assurez-vous qu'il dirige votre requête vers l'application appropriée sur le serveur.
- Pensez à la mise en cache DNS la prochaine fois que vous rencontrez un délai dans le pipeline de données ; une recherche lente ou un cache obsolète pourraient être en cause.
Fermeture
Ces concepts ne sont pas de simples détails théoriques pour les développeurs. Du routage physique des paquets (TCP/IP) à l'adressage logique des services (DNS, ports) et au langage des requêtes (HTTP), ces protocoles en couches forment le système invisible dont dépendent nos pipelines de données. Comprendre comment les données circulent et sont structurées permet de mieux appréhender les goulots d'étranglement en matière de performances, le diagnostic des erreurs et l'extraction des données. La prochaine étape de ce cycle de conférences portera sur la dynamisation du contenu web grâce à JavaScript, le moteur des visualisations de données interactives que nous utilisons quotidiennement.
Comment une meilleure compréhension de ces protocoles pourrait-elle modifier la façon dont vous concevez votre prochain script de collecte de données ?
Base: Harvard CS50x 2025 (YouTube).

