13

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

我应该如何处理在编写响应过程 中发生的任何错误?

我想知道是否有任何关于此的 HTTP Spec 推荐的做法,让客户知道响应确实不是成功的,但服务器遇到了一些问题。

4

2 回答 2

9

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

于 2013-06-20T01:32:26.177 回答
1

分块响应可以使用带有一些完整性检查或后处理状态的尾部标头。这可能比在接受的答案中描述的关闭连接更好,因为您可以有自定义错误消息。但是,只有当您同时控制服务器和客户端时,您才能从中受益。

于 2020-06-21T19:45:26.803 回答