如果我已经设置了服务器的ReadTimeout 和 WriteTimeout ,另外使用http.TimeoutHandler是否有意义?似乎这个场景是相互排斥的?
这两个处理 http 请求/响应生命周期的不同方面。
http.TimeoutHandler
用于限制 http.Handler 的执行时间。如果没有在规定的时间内完成,它将返回503
状态代码给客户端http.Handler
。
whileReadTimeout
和WriteTimeout
处理网络 I/O 超时,即分别向您的客户端读/写请求/响应正文所需的时间。
因此,http.TimeoutHandler
通过包装您的原始处理程序来处理您的处理程序(处理 http 请求的代码块)需要在设定的时间内完成的情况。whilehttp.WriteTimeout
或http.ReadTimeout
当您不想无限期地等待请求/响应的网络读/写时使用。