リクエスト処理の最適化: "defer req.Body.Close()" はどこに置くべきですか?
Web サーバー環境では、これが一般的な方法です。 net/http ハンドラーを使用してリクエストを処理します。発生する問題の 1 つは、ステートメント「defer req.Body.Close()」をどこに配置するかです。
配置オプションの評価
このステートメントは最後に配置する必要がありますか?機能の?どこに配置されるかは重要ですか?
答え: 閉じる必要はありません
公式 http.Request ドキュメントによると、リクエストの本文を閉じる必要はありません。ハンドラー。サーバーは自動的にリクエストの本文を閉じます。
<br>// サーバーはリクエスト本文を閉じます。 ServeHTTP<br>// ハンドラーはその必要がありません。<br>
この設計選択により、明示的に閉じる必要がなくなり、リクエストの処理が簡素化されます。
したがって、関数内のどこに「defer req.Body.Close()」を配置しても問題ありません。サーバーはボディのクロージャを内部で処理するため、完全に省略することもできます。
以上が「defer req.Body.Close()」を Go HTTP ハンドラーのどこに配置する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。