Penempatan "defer req.Body.Close()" dalam Pengendali HTTP
Apabila bekerja dengan pengendali HTTP dalam pakej net/http Golang , pembangun sering menghadapi persoalan di mana hendak meletakkan pernyataan "defer req.Body.Close()" untuk memastikan pengendalian sumber yang betul. Dalam artikel ini, kami akan meneroka peletakan yang betul dan menyelidiki implikasinya.
Adalah penting untuk memahami bahawa badan permintaan HTTP tidak perlu ditutup secara eksplisit dalam pengendali. Menurut dokumentasi untuk http.Permintaan:
// The Server will close the request body. The ServeHTTP // Handler does not need to.
Ini bermakna tanggungjawab menutup badan permintaan terletak pada pelayan dan bukan pengendali itu sendiri. Oleh itu, meletakkan "defer req.Body.Close()" dalam pengendali adalah tidak perlu dan tidak menjejaskan kelakuan pelayan dalam apa-apa cara yang bermakna.
Oleh itu, peletakan pernyataan penangguhan ini dalam fungsi adalah tidak relevan. Sama ada ia diletakkan pada awal atau akhir, ia tidak mempunyai tujuan. Adalah lebih baik untuk meninggalkannya sepenuhnya untuk mengelakkan kekeliruan dan mengelakkan penggunaan sumber yang tidak perlu.
Atas ialah kandungan terperinci Di manakah 'defer req.Body.Close()' Perlu Diletakkan dalam Pengendali HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!