"http: multiple response.WriteHeader calls"有什么不好的影响?

What's the bad effect of "http: multiple response.WriteHeader calls"?

虽然我发现 "http: multiple response.WriteHeader calls" 的异常,但我的服务器运行良好。此异常不会导致我的服务器崩溃或行为异常。

我搜索了很多,但只找到了解决这个问题的方法。没有文档描述异常的不良影响。有人可以帮我找出为什么 "http: multiple response.WriteHeader calls" 是一个例外,它会造成什么不良影响?提前致谢。

更新

我已经阅读了源代码here:

多次调用WriteHeader时,只打印一条日志,然后什么都不做。似乎多次调用 WriteHeader 不会导致服务器行为异常。

在发送给客户端之前,您只能写一次响应header。因为您的代码在发送给客户端后尝试写入响应 header,所以客户端永远不会看到您尝试发送的最终响应。

您可能有一个错误,客户端收到错误的响应,您后来修改了错误,或者您有一个错误,在编写正确的响应 header 后,您正在执行错误的代码。无论哪种方式,它都是一个错误。

不好的影响是实际结果很可能与您期望的不同。如果您在第 10 行调用 WriteHeader(200),然后在第 50 行调用,在相同的 ResponseWriterWriteHeader(404) 上,您期望响应代码是什么? 404,或200?

WriteHeader 忽略后续调用并通过记录该消息告诉您它,因此当您得到 200 而不是您可能期望的 404 时,您只需看看服务器日志,您就知道发生了什么。留言是为了帮助你。