【发布时间】:2013-06-16 16:54:01
【问题描述】:
我正在以分块传输编码格式向客户端发送大量数据。
我应该如何处理在编写响应期间中途发生的任何错误?
我想知道是否有任何关于此的 HTTP 规范推荐做法,以便客户端知道响应确实不是成功的,但服务器遇到了一些问题。
【问题讨论】:
标签: http chunked-encoding http-chunked
我正在以分块传输编码格式向客户端发送大量数据。
我应该如何处理在编写响应期间中途发生的任何错误?
我想知道是否有任何关于此的 HTTP 规范推荐做法,以便客户端知道响应确实不是成功的,但服务器遇到了一些问题。
【问题讨论】:
标签: http chunked-encoding http-chunked
分块响应可以使用trailer header 进行一些完整性检查或后处理状态。这可能比在接受的答案中描述的关闭连接更好,因为您可以有自定义错误消息。但是,只有当您同时控制服务器和客户端时,您才能从中受益。
【讨论】:
一旦您开始向客户端发送 HTTP 标头,您就不能再发送任何其他内容了。您必须完成发送您打算发送的响应,即分块数据和相关标头。如果在此过程中发生错误,则无法向客户端报告该错误。您所能做的就是关闭连接。客户端要么没有收到所有的标头,要么在响应结束时没有收到终止的 0 长度块。无论哪种方式都足以让客户端知道服务器在发送过程中遇到错误。
【讨论】: