首页  >  文章  >  后端开发  >  您应该在 HTTP 处理程序中使用'defer req.Body.Close()”吗?

您应该在 HTTP 处理程序中使用'defer req.Body.Close()”吗?

Barbara Streisand
Barbara Streisand原创
2024-11-10 05:02:02872浏览

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

何时在 HTTP 处理程序中使用 defer req.Body.Close()

在许多 Web 服务器端应用程序中,通常会处理使用 net/http 包传入的 HTTP 请求。出现的一个问题是在哪里放置 defer req.Body.Close() 语句。

一般规则:不需要关闭请求主体

根据 http .请求文档,服务器自动关闭请求体。因此,处理程序不需要显式关闭它。

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

为什么不使用 defer?

使用 defer req.Body.Close() 是多余的,可以导致性能问题。它可以创建不必要的 HTTP 连接并阻止处理其他请求。

因此,最佳实践是避免在 HTTP 处理程序中使用 defer req.Body.Close()。

以上是您应该在 HTTP 处理程序中使用'defer req.Body.Close()”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn