Go 1.27 : réutilisation HTTP/1 5x plus rapide
Original : Better HTTP/1 connection reuse in Go 1.27
Pourquoi c'est important
La réutilisation des connexions réduit la latence dans les architectures microservices.
Go 1.27 améliore la réutilisation des connexions HTTP/1 : 100 requêtes vers index.golang.org passent de ~710 ms à ~150 ms, soit un gain de performance de près de 5x par rapport à Go 1.26.
Nicholas Husin et Damien Neil, ingénieurs chez Google, ont publié le 14 octobre 2026 un article technique détaillant une amélioration majeure du package net/http dans Go 1.27. Le constat de départ est simple : une fonction appelant http.Get() 100 fois de suite prenait ~710 ms avec Go 1.26 ; la même tourne en ~150 ms avec Go 1.27.
L'explication tient à la mécanique des connexions réseau. Chaque nouvelle connexion HTTPS impose un handshake TCP (1 RTT), un handshake TLS (1 à 2 RTT selon la version), puis enfin la requête HTTP — soit 3 RTT minimum avec TLS 1.2. En communications inter-régions, chaque RTT peut dépasser 100 ms. Le coût s'accumule vite.
Pour éviter ce surcoût répété, HTTP cherche à réutiliser les connexions existantes. Les mécanismes varient selon la version du protocole : HTTP/1.0, HTTP/1.1 et HTTP/2 ont chacun leurs règles propres. Go 1.27 améliore précisément la logique de réutilisation côté HTTP/1, permettant au client de conserver et recycler les connexions ouvertes bien plus efficacement qu'auparavant. Le gain est particulièrement visible dans les scénarios où de nombreuses requêtes séquentielles sont émises vers le même hôte — un cas très courant dans les services backend.