Reuse HTTP connections in Go by sharing a single http.Client instance across all requests, as the default Transport automatically manages connection pooling. Avoid creating new clients per request or setting Transport.MaxIdleConns to 0, which disables reuse. If you must disable reuse due to specific legacy issues, set Transport.DisableKeepAlives to true.
var client = &http.Client{
Transport: &http.Transport{
MaxIdleConns: 100,
MaxIdleConnsPerHost: 10,
},
}
resp, err := client.Get("https://example.com")
if err != nil {
// handle error
}
defer resp.Body.Close()