2010-01-04 51 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