Une négociation TLS 1.2 classique demande deux allers-retours réseau complets avant que le premier octet de données utiles ne circule. TLS 1.3 en a ramené le nombre à un seul, un gain déjà notable adopté depuis plusieurs années par la quasi-totalité des hébergeurs sérieux. Une option plus récente, connue sous le nom de 0-RTT (zero round-trip time), promet d’aller plus loin encore pour les visiteurs qui reviennent : supprimer entièrement cet aller-retour lors d’une reconnexion.
Ce site vend des cours en ligne à une audience répartie sur plusieurs continents, hébergé derrière un CDN proposant l’activation du 0-RTT en option. La question posée était concrète : ce gain théorique se traduit-il par une différence mesurable pour des visiteurs situés à plusieurs milliers de kilomètres du point de présence le plus proche ?
Comment fonctionne la reprise de session 0-RTT
Lors d’une première connexion, le client et le serveur négocient une clé de session et le serveur émet un identifiant de reprise. Lors d’une reconnexion ultérieure, si le 0-RTT est activé, le client peut envoyer ses premières données applicatives — la requête HTTP elle-même — dans le même paquet que la reprise de la session TLS, sans attendre la confirmation du serveur. Ce gain ne s’applique donc qu’aux visiteurs déjà venus récemment, pas à une première visite.
Le protocole de mesure

Le test a été mené depuis trois points de mesure distincts, simulant des visiteurs situés en Europe, en Amérique du Nord et en Asie du Sud-Est, à l’aide d’un outil en ligne de commande capable de forcer ou de désactiver le 0-RTT lors de la négociation :
openssl s_time -connect exemple-cours.test:443 -tls1_3 -new -time 10
Pour chaque point de mesure, cent connexions successives ont été chronométrées, séparément avec et sans 0-RTT activé côté serveur, en isolant précisément le temps écoulé entre l’envoi du premier paquet TCP et la réception des premiers octets de réponse applicative.
Les résultats mesurés
| Origine simulée | TLS 1.3 sans 0-RTT | TLS 1.3 avec 0-RTT |
|---|---|---|
| Europe (proche du serveur) | 38 ms | 21 ms |
| Amérique du Nord | 142 ms | 78 ms |
| Asie du Sud-Est | 210 ms | 119 ms |
Le gain observé, proche de 90 millisecondes pour les connexions les plus lointaines, correspond exactement à l’ordre de grandeur attendu d’un aller-retour réseau supprimé : plus la distance physique augmente, plus un aller-retour économisé pèse dans le temps total.
La nuance à connaître : le risque de rejeu
Le 0-RTT présente une limite de sécurité documentée : les données envoyées dans ce mode initial peuvent, dans certaines conditions, être rejouées par un attaquant qui intercepterait la connexion, un risque qui ne concerne pas les négociations TLS classiques. Cette limite explique pourquoi de nombreux CDN restreignent le 0-RTT aux seules requêtes GET considérées comme sans effet de bord, en l’excluant explicitement des requêtes de connexion, de paiement ou de soumission de formulaire.
Ce qui a été retenu pour la mise en production
- Le 0-RTT a été activé uniquement pour les ressources statiques et les pages de contenu public, jamais pour les points de terminaison liés à l’authentification ou au paiement.
- Le gain mesuré, réel mais modeste en valeur absolue sur les connexions proches, devient significatif pour l’audience internationale de ce site, qui représente près d’un tiers des visiteurs.
- Aucune modification côté WordPress n’a été nécessaire : l’activation du 0-RTT relève entièrement de la configuration du CDN et du serveur web.
Un gain de quatre-vingt-dix millisecondes ne se voit sur aucune capture d’écran, mais il compte double pour un visiteur situé à l’autre bout du monde qui doit établir cette connexion à chaque page.
En résumé
Le 0-RTT a confirmé sa promesse : un aller-retour réseau économisé, avec un effet d’autant plus marqué que la distance entre le visiteur et le serveur augmente. Sa portée reste toutefois limitée aux connexions récurrentes sur des requêtes sans effet de bord, une restriction de sécurité qu’aucune configuration ne devrait ignorer au nom de la seule performance.