6 points par GN⁺ 2024-05-27 | 1 commentaires | Partager sur WhatsApp

Cycle de vie d’une requête HTTP

1. Le client envoie une requête

  • Création d’une requête HTTP : le client (généralement un navigateur web) crée une requête HTTP.
  • Méthode HTTP : GET, POST, etc.
  • Ressource demandée : par exemple /index.html.
  • Version du protocole : HTTP/1.1, etc.
  • En-têtes et corps : inclut des en-têtes au format clé: valeur et un corps de message optionnel.

2. Résolution DNS

  • Conversion du nom de domaine : convertit un nom de domaine lisible par l’humain (www.example.com) en adresse IP (93.184.216.34).
  • Requête au serveur DNS : le client envoie une requête à un serveur DNS pour convertir le nom de domaine en adresse IP.

3. Handshake TCP

  • Établissement de la connexion TCP : le client établit une connexion TCP avec le serveur.
  • Handshake en 3 étapes :
    • SYN : le client envoie une demande de connexion.
    • SYN-ACK : le serveur confirme la demande.
    • ACK : le client envoie une réponse de confirmation.

4. Envoi de la requête HTTP

  • Envoi de la requête HTTP : une fois la connexion TCP établie, le client envoie la véritable requête HTTP.

5. Routage des paquets sur Internet

  • Transmission des paquets : les paquets de données sont routés vers le serveur à travers plusieurs équipements réseau.
  • Rôle des routeurs : les routeurs déterminent le chemin optimal des paquets.

6. Réponse du serveur

  • Création de la réponse HTTP : le serveur traite la requête HTTP et génère une réponse.
  • Contenu de la réponse :
    • Protocole : version HTTP utilisée.
    • Informations d’état : code de statut HTTP (ex. : 200, 404).
    • En-têtes de réponse : similaires aux en-têtes de requête.
    • Corps de la réponse : contenu demandé (ex. : page HTML, données JSON).

7. Rendu du contenu

  • Traitement de la réponse HTTP : le client reçoit et traite la réponse HTTP.
  • Rendu du navigateur : le navigateur interprète le HTML et affiche le contenu à l’écran.
  • Requêtes de ressources supplémentaires : demande des ressources additionnelles comme des images, du CSS et du JavaScript.

HTTPS = HTTP + chiffrement

Handshake TLS

  • Handshake TLS : le client et le serveur échangent les clés de chiffrement et d’authentification.
  • Communication chiffrée : après le handshake TLS, le client et le serveur échangent des messages chiffrés en utilisant HTTP.

Handshake TLS 1.3

  • Processus simplifié : TLS 1.3 propose moins d’options, ce qui le rend plus simple, plus sûr et plus rapide.
  • Étapes clés :
    • Client Hello : le client envoie au serveur les suites de chiffrement et la version TLS qu’il prend en charge.
    • Server Hello : le serveur envoie au client la suite de chiffrement et la version TLS qu’il a choisies.
    • Vérification du certificat : le client vérifie le certificat SSL du serveur.
    • Génération du pre-master secret : le client génère le pre-master secret et l’envoie au serveur.
    • Génération de la clé de session : le client et le serveur génèrent une clé de session.
    • Communication sécurisée : communication via un chiffrement symétrique sécurisé à l’aide de la clé de session.

L’avis de GN⁺

  • Comprendre les communications Internet : comprendre les concepts de base de HTTP et HTTPS aide à bien poser les fondations des communications réseau.
  • Importance de la sécurité : il est important d’améliorer la sécurité du transfert de données via HTTPS.
  • Avantages de TLS 1.3 : il est recommandé d’utiliser TLS 1.3, plus simple, plus rapide et plus sûr.
  • Application en pratique : il est nécessaire d’appliquer HTTPS dans les projets réels afin de renforcer la sécurité.
  • Apprentissage complémentaire : approfondir les couches réseau et les protocoles permet d’obtenir une compréhension plus poussée.

1 commentaires

 
GN⁺ 2024-05-27
Commentaires sur Hacker News
  • Une question sur la raison pour laquelle il est difficile de savoir où se situe le problème lorsqu’un incident réseau survient. L’explication selon laquelle le chemin réseau est non déterministe ne semble pas convaincante.
  • Un avis recommandant des exemples détaillés et interactifs sur TLSv1.2 et TLSv1.3. Lien fourni.
  • Un avis indiquant que les explications dans le style "ELI(a mediocre engineer)" sont utiles. Souhaite trouver davantage d’exemples.
  • La demande d’une personne cherchant un exemple de code pour la vérification de signature SHA256. Elle connaît la théorie mais a des difficultés avec l’implémentation.
  • Un avis disant que la meilleure partie de l’article était le passage affirmant qu’à San Francisco, rédiger des requêtes HTTP rapporte un salaire annuel de 300 k$.
  • Un avis indiquant que le fait que le client chiffre et envoie le pre-master secret avec la clé publique du serveur est une information ancienne.
  • Un doute au sujet de l’explication selon laquelle le certificat SSL inclut la clé privée. Un avis disant que cela correspond bien au titre "Mediocre Engineer".
  • Une plaisanterie disant vouloir travailler pour 50 k$ de moins que 300 k$. Remarque indiquant que l’explication de TLS <1.3 est incorrecte.
  • Un avis indiquant que le contenu de l’article est ancien et qu’actuellement 30 % des requêtes web utilisent HTTP3 et CORS. Remarque sur l’absence de date de publication.
  • Un avis disant que l’explication de HTTPS ressemble à un résumé généré par une IA. Les termes ne sont pas assez expliqués et l’article suppose que le lecteur connaît déjà la cryptographie à clé publique. Remarque indiquant aussi que l’explication des couches OSI est incomplète.