在分块传输编码中发送响应并指示在已经发送一些数据之后发生的错误

时间:2013-06-20 00:10:08

标签: http chunked-encoding http-chunked

我正在以分块传输编码格式向客户端发送大量数据。

在撰写回复期间,我应该如何处理中途发生的任何错误?

我想知道是否有任何HTTP规范建议的做法,客户要知道确实响应不是一个成功但服务器遇到了一些问题。

2 个答案:

答案 0 :(得分:6)

一旦开始将HTTP标头发送到客户端,就无法发送任何其他内容。您必须完成发送您要发送的响应,即分块数据和相关标头。如果在中途发生错误,则无法向客户端报告该错误。您所能做的就是关闭连接。客户端没有收到所有标头,或者在响应结束时没有收到终止0长度的块。无论哪种方式都足以让客户端知道服务器在发送过程中遇到错误。

答案 1 :(得分:0)

成块的响应可以将trailer header与某些完整性检查或后处理状态一起使用。这可能比接受的答案中所述的关闭连接更好,因为您可能会收到自定义错误消息。但是,只有同时控制服务器和客户端,您才能从中受益。