エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Goのnet/httpのclientでなぜresponseBodyをClose、読み切らなくてはいけないのか
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Goのnet/httpのclientでなぜresponseBodyをClose、読み切らなくてはいけないのか
いきなり結論 結論としては、 responseBodyをCloseしないとコネクションがブロックしてしまい再利用され... いきなり結論 結論としては、 responseBodyをCloseしないとコネクションがブロックしてしまい再利用されず、古い接続が残ったまま、新しく接続するたびに新しいGoroutineとファイルディスクリプタを作ってしまう responseBodyを読み切らないとkeepAliveされずコネクションが終了してしまい再利用されず、接続のたびに新しい接続を作ってしまう。 ということなのですが、コードではどうなっているか見てみましょう。 http.Get ~ client.sendまで http.Get -> client.Get -> client.Do -> client.sendまで http.Get func Get(url string) (resp *Response, err error) { return DefaultClient.Get(url) } ここのDefaultC