この説明では、Go HTTPS クライアントが接続の再利用に失敗し、潜在的に問題のある動作につながる問題について説明します。
DisableKeepAlives が false に設定された単一の http.Transport インスタンスを使用しているにもかかわらず、提供された Go コードは特定のホストへの複数の接続を作成します。これは、接続を再利用するリクエスト ライブラリを使用する同様の Python コードとは異なります。
最初の誤解は、Go クライアントはデフォルトで接続を再利用する必要があるということでした。ただし、さらなる明確化により、デフォルトの動作では接続を再利用する前に応答を閉じる必要があることが明らかになりました。
Go で HTTP 接続を確実に再利用するには、次の 2 つの重要な手順を実行する必要があります。
最大接続制御の欠如は制限ですが、time.Tick を使用したレート制限リクエストによって緩和できます。
応答本文を閉じる問題に対処することで、開発者は Go の HTTP クライアントが接続を適切に再利用することを保証できます。これは、過剰な TCP 接続の蓄積を避けるために非常に重要です。
以上がGo HTTPS クライアントがデフォルトで接続を再利用しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。