在本讨论中,我们探讨了 Go HTTPS 客户端无法重用连接的问题,从而导致潜在的问题行为。
提供的 Go 代码会创建与特定主机的多个连接,尽管使用单个 http.Transport 实例并将 DisableKeepAlives 设置为 false。这与使用 requests 库的类似 Python 代码不同,后者重用连接。
最初的误解是 Go 客户端默认应该重用连接。然而,进一步的澄清显示,默认行为要求在重用连接之前关闭响应。
为了确保 Go 中的 HTTP 连接重用,必须采取两个基本步骤:
虽然缺乏最大连接控制是一个限制,但可以通过使用 time.Tick 的速率限制请求来缓解。
通过解决关闭响应体的问题,开发者可以确保Go的HTTP客户端正确地重用连接。这对于避免积累过多的 TCP 连接至关重要。
以上是为什么 Go HTTPS 客户端默认不重用连接?的详细内容。更多信息请关注PHP中文网其他相关文章!