2010-01-04 34 views
1

我可以确定分块的HTTP响应会被其他任何事物不间断地发送吗?我需要区分响应(和请求),这不是一个简单的阅读内容长度的情况,看到一个关闭连接或一个非主体响应代码。HTTP块:所有块连续发送且不中断?

我可以读取每个块,并且一旦块大小为0我将读取完全一个响应(或请求)?也就是说,有可能是否有任何其他响应的一部分被交错发送?我怀疑它连续发送和不间断的,因为在分块传输的规范中似乎没有任何类型的标识,所以如何重新组合多个?

最后,如果一个响应被分块发送,客户端发送的东西是否比原始请求多?我正在思考流量控制和错误检查的问题,但是这些都是在较低层次上处理的,所以我怀疑客户端不会再发送更多内容。

谢谢!

回答

3

“Interleaved”与究竟是什么? HTTP不允许在同一连接上同时发送多个响应。即使有流水线,响应仍然会相继发送。也就是说,你会看到所有的块在响应任何其他请求之前都会按顺序排列。

至于你的最后一个问题,不,客户端不会发送比原始请求更多的东西。

+0

谢谢,正如我所希望的那样! – Ray2k 2010-01-04 16:55:34

+0

从技术上讲,如果请求是流水线的,它可能会发送下一个请求。 此外,客户端可能会发送Trailer头,但我不知道任何客户端实际上都会这样做。 – EricLaw 2010-01-05 03:36:42