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
Commentaires sur Hacker News