我有一个使用
如何在
net/http
服务器处理GET请求(通过ServeHTTP()
),该请求可能需要很长时间才能完成。因此,服务器端未配置客户端超时。但是,连接的客户端可能已关闭其与服务器的连接(通常是由于其一侧的超时,但当然也可能是其他原因)。我无法控制客户端。如何在
ServeHTTP()
中检测这种情况而不“干扰”连接?
- 我不能发送一系列
1xx
响应头,因为ResponseWriter.WriteHeader()
不支持它(而且仅允许设置一个标题并且不返回任何内容)。 - 我不能使用带零大小数据的
ResponseWriter.Write()
,因为那样会发送头。
编辑:这不是如何在Golang http.Client POST过早地关闭/中止请求的重复问题,因为那里的问题是如何从客户端取消请求,而我的问题是关于在服务器端检测到这种取消。