Heim >Backend-Entwicklung >Golang >Sollten Sie „defer req.Body.Close()' in HTTP-Handlern verwenden?

Sollten Sie „defer req.Body.Close()' in HTTP-Handlern verwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 05:02:02939Durchsuche

Should You Use `defer req.Body.Close()` in HTTP Handlers?

Wann man defer req.Body.Close() in HTTP-Handlern verwendet?

In vielen webserverseitigen Anwendungen ist dies üblich Eingehende HTTP-Anfragen mithilfe von Net/http-Paketen. Es stellt sich die Frage, wo die defer req.Body.Close()-Anweisung platziert werden soll.

Allgemeine Regel: Anforderungskörper müssen nicht geschlossen werden

Laut http .Dokumentation anfordern, der Server schließt den Anforderungstext automatisch. Daher müssen Handler es nicht explizit schließen.

// The Server will close the request body. The ServeHTTP
// Handler does not need to.

Warum nicht defer verwenden?

Die Verwendung von defer req.Body.Close() ist überflüssig und kann zu Leistungsproblemen führen. Es kann unnötige HTTP-Verbindungen erstellen und die Verarbeitung anderer Anforderungen blockieren.

Daher empfiehlt es sich, die Verwendung von defer req.Body.Close() in HTTP-Handlern zu vermeiden.

Das obige ist der detaillierte Inhalt vonSollten Sie „defer req.Body.Close()' in HTTP-Handlern verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn