Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Di manakah "defer req.Body.Close()" Perlu Diletakkan dalam Pengendali HTTP Go?

Di manakah "defer req.Body.Close()" Perlu Diletakkan dalam Pengendali HTTP Go?

DDD
DDDasal
2024-11-12 07:08:02458semak imbas

Where Should

Mengoptimumkan Pengendalian Permintaan: Di Mana Harus "menunda req.Body.Close()" Berada?

Dalam persekitaran pelayan web, ia adalah amalan biasa untuk mengendalikan permintaan menggunakan pengendali net/http. Satu persoalan yang timbul ialah di mana hendak meletakkan pernyataan "defer req.Body.Close()".

Menilai Pilihan Peletakan

Sekiranya penyata ini diletakkan di penghujung daripada fungsi tersebut? Adakah ia penting di mana ia diletakkan?

Jawapan: Tidak Perlu Ditutup

Menurut dokumen rasmi http.Permintaan, badan permintaan tidak perlu ditutup dalam pengendali. Pelayan akan menutupnya secara automatik.


// Pelayan akan menutup badan permintaan. Pengendali ServeHTTP
// tidak perlu.

Pilihan reka bentuk ini menghilangkan keperluan untuk penutupan yang jelas dan memudahkan pengendalian permintaan.

Oleh itu , tidak kira di mana anda meletakkan "defer req.Body.Close()" dalam fungsi anda. Anda boleh memilih untuk meninggalkannya sama sekali kerana pelayan mengendalikan penutupan badan secara dalaman.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn