Go 1.27 cuts HTTP/1 latency by 5x via connection reuse

Original: Better HTTP/1 connection reuse in Go 1.27

Why This Matters

Faster HTTP/1 connection reuse benefits any Go service making repeated outbound requests.

Go 1.27 improves HTTP/1 connection reuse, cutting 100-request benchmark time against index.golang.org from ~710ms to ~150ms—nearly 5x faster than Go 1.26, per the Go team's official blog post published October 14, 2026.

The Go team's Nicholas Husin and Damien Neil detailed the change in a blog post: a simple function calling http.Get 100 times over HTTP/1 now completes in ~150ms on Go 1.27, down from ~710ms on Go 1.26—no code changes required.

The root cause is connection setup cost. Each new HTTPS connection over HTTP/1 requires a TCP handshake (1 RTT) plus a TLS handshake (up to 2 RTT with TLS 1.2, or 1 RTT with TLS 1.3), before a single byte of HTTP traffic is sent. In cross-region setups where one-way latency hits 50ms, that means 300ms just to establish a connection—before any application logic runs.

Connection reuse sidesteps this cost by keeping TCP connections alive across multiple requests. The improvement in Go 1.27 focuses specifically on how the HTTP/1 client handles this reuse, making it more effective than in prior releases. The benchmark used index.golang.org, a globally distributed endpoint supporting TLS 1.3, where conditions were already favorable—making the 5x speedup even more striking.

Source

go.dev — Read original →