go - 使用 http.TimeoutHandler 或 ReadTimeout/WriteTimeout?

标签 go

另外使用 http.TimeoutHandler 是否有意义如果我已经设置了 server's读超时和写超时?似乎这种情况是相互排斥的?

最佳答案

这两个处理 http 请求/响应生命周期的不同方面。

http.TimeoutHandler 用于限制http.Handler 的执行时间。如果 http.Handler 没有在规定的时间内完成,它将返回 503 状态代码给客户端

同时,ReadTimeoutWriteTimeout 处理网络 I/O 超时,即读取/写入请求/响应正文所需的时间到您的客户端 分别。

因此,http.TimeoutHandler 处理您的处理程序(处理 http 请求的代码块)需要在设定的时间内完成的情况,方法是包装您的原始处理程序。而 http.WriteTimeouthttp.ReadTimeout 当您不想无限期地等待请求/响应的网络读/写时使用。

关于go - 使用 http.TimeoutHandler 或 ReadTimeout/WriteTimeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51258952/

相关文章:

docker - 将编译后的Go二进制文件放在哪里?

ssl - 如何在原生 Go 中将 PEM 证书链转换为 PKCS7?

go - 这两个结构定义有什么区别?

go - 使用相同的包会污染编译后的二进制文件吗?

go - 使用原子操作的计数器和使用互斥量的计数器在 Go 中有区别吗?

go - 如何在 Go 中将类型传递给函数参数

golang 无法执行二进制文件 : Exec format error

go - go-colly:如何在c.OnResponse中获取HTML标题,以便填充结构?

go - 如何获取 go 包的实际存储库 url

go:需要更新 go.mod;更新它: