Comprendre le parcours d'une requête HTTP : de l'URL à l'affichage

Exploration du mécanisme : de la saisie de l'adresse à l'affichage complet

Prenons l'exemple d'une recherche sur Google avec le terme "machine learning", le processus implique plusieurs étapes techniques essentielles.

Analyse URL → Résolution DNS → Établissement de connexion (TCP/TLS) → Transmission requête → Traitement serveur → Réponse → Rendu navigateur


Analyse et prétraitement de l'URL

Lorsque vous saissez https://www.google.com/search?q=machine learning dans la barre d'adresse, le navigateur procède à plusieurs opérations préliminaires :

Composant Valeur Fonction
Protocole Https Port 443, chiffrement activé
Nom de domaine www.google.com Adresse du serveur cible
Chemin /search Point d'accès au service de recherche
Paramètres q = machine learning Terme de recherche (encodé URL)

Si vous saissez uniquemetn "machine learning" (sans URL complet), le navigateur complète automatiquement vers https://www.google.com/search?q=machine learning

Résolution du nom de domaine (traduction domaine → adresse IP)

Google utilise un système de résolution DNS sophistiqué avec distribution géographique intelligente :

  • Le navigateur vérifie d'abord le cache local (méthode la plus rapide) Cache du navigateur : recherche d'une adresse IP déjà mémorisée pour www.google.comFichier hosts système : consultation de /etc/hosts (Linux/Mac) ou C:\Windows\System32\drivers\etc\hosts (Windows)
  • En cas d'absence dans le cache, une requête DNS récursive est effectuée (environ 10-100ms)
Serveur DNS local → Serveur racine → Serveur de domaine顶级 (.com) → Serveur DNS权威 de Google


Optimisations spécifiques implementées :

  • Utilisation de domaines secondaires avec pools d'adresses IP dynamiques pour la répartition de charge
  • Temps de résoltuion inférieur à 10ms grâce à une infrastructure DNS optimisée
  • Technologie BGP Anycast pour une connexion au centre de données le plus proche

Établissement de la connexion réseau (poignée de main TCP + TLS)

Phase TCP : établissement de connexion (three-way handshake)

  • Navigateur : envoi du paquet SYN (seq=x), demande de connexion
  • Serveur Google : réponse SYN+ACK (ack=x+1, seq=y)
  • Navigateur : confirmation ACK (ack=y+1), connexion établie

Phase supplémentaire HTTPS : négociation TLS

  • Navigateur : transmission des versions TLS et suites cryptographiques supportées
  • Google : renvoi du certificat (contenant la clé publique) et du protocole chiffré sélectionné
  • Navigateur : validation du certificat (vérification via l'autorité de certification)
  • Génération d'une clé de session par les deux parties, toutes les données suivantes seront chiffrées

Emission de la requête HTTP (navigateur → serveur)

Une fois la connexion établie, le navigateur transmet une requête HTTP complète :

GET /search?q=%6D%61%63%68%69%6E%65%20%6C%65%61%72%6E%69%6E%67 HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0
Accept: text/html,application/xhtml+xml
Accept-Encoding: gzip, deflate, br
Cookie: SID=XYZ789; SSID=ABC456


Traitement côté serveur (flux de traitement principal)

Google utilise une architecture multi-couches pour gérer les requêtes avec une haute disponibilité :

  • Couche d'équilibrage de charge (DNS + LB)
  • Couche proxy inverse (Nginx, etc.)
  • Moteur de recherche principal

Réponse HTTP (serveur → navigateur)

Après traitement, Google renvoie la réponse suivante :

HTTP/1.1 200 OK
Server: gws
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Content-Length: 67890
Set-Cookie: SID=RST321; Expires=Fri, 31 Dec 2037 23:59:59 GMT
Cache-Cache-Control: max-age=3600



<html lang="fr">
<head>
<title>Recherche Google - machine learning</title>
...
</head>
<body>
  <div id="search">
    <h3>Résultats connexes</h3>
    ... 
  </div>
</body>
</html>


Rendu de la page par le navigateur (affichage final)

  • Interprétation du HTML, construction de l'arbre DOM
  • Analyse du CSS, génération du CSSOM
  • Construction de l'arbre de rendu (Render Tree)
  • Calcul de la mise en page (Layout)
  • Opération de dessin (Painting)
  • Chargement des ressources (images, scripts, etc.)
  • Exécution du JavaScript

Fermeture de la connexion (four-way handshake)

Une fois la page totalement chargée, si aucune nouvelle requête n'intervient pendant un délai défini, la connexion se ferme via quatre échanges :

  • Navigateur : envoi du paquet FIN (fin d'émission)
  • Serveur Google : accusé de réception ACK
  • Serveur Google : envoi du paquet FIN (fin de réception)
  • Navigateur : accusé de réception ACK

Étiquettes: HTTP DNS TCP HTTPS TLS

Publié le 6 juillet à 00h27