2013-06-20 41 views

回答

5

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

+0

谢谢雷米。是的...我知道标题首先被发送,并且一旦我们开始写入流,就无法修改它们。正如你所建议的那样,我目前关闭了连接,但想知道HTTP Spec是否有其他方式说明如何让客户知道它。这个0长的块有意思,我会检查看看我是否可以在该区域做些什么。 –

+0

只有两种方法可以让客户知道出现了问题。关闭连接(这是你应该做的),因为除了接收最后一个0长度块以外的任何东西都是错误,或者在发送最后一个0-长度块之后在分块页脚中放置一个自定义HTTP头。尽管大多数客户可能会忽略这样的头文件,但如果您正在编写自己的客户端,那么您可以查找该头文件。 –

+0

确定..谢谢!雷米... –