在本討論中,我們探討了Go HTTPS 用戶端無法重複使用連線的問題,從而導致潛在的問題行為。
提供的 Go 程式碼會建立與特定主機的多個連接,儘管使用單一 http.Transport 實例並將 DisableKeepAlives 設為 false。這與使用 requests 函式庫的類似 Python 程式碼不同,後者重複使用連線。
最初的誤解是 Go 客戶端預設應該重複使用連線。然而,進一步的澄清顯示,預設行為要求在重複使用連線之前關閉回應。
為了確保Go 中的HTTP 連接重用,必須採取兩個基本步驟:
雖然缺乏最大連接控制是一個限制,但可以透過使用time.Tick 的速率限制請求來緩解。
透過解決關閉回應體的問題,開發者可以確保Go的HTTP客戶端正確地重複使用連線。這對於避免累積過多的 TCP 連線至關重要。
以上是為什麼 Go HTTPS 用戶端預設不重複使用連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!