2012-07-24 61 views
1

HTTP規範(RFC2616)具有以下短語「通過關閉連接終止」:如何檢測該消息被

如果Transfer-Encoding頭字段(部分14.41)存在和 具有任何值除了「身份」以外,傳輸長度爲 ,通過使用「分塊」傳輸編碼(3.6節), 定義,除非通過關閉連接終止消息。

如何檢測消息是否「通過關閉連接終止」?檢查值「關閉」的「連接」字段是否足夠?

回答

0

我認爲RFC指向TCP連接,當您從套接字讀取0個字節時,另一端已關閉連接。

更多: Can read() function on a connected socket return zero bytes?

+0

如果(傳輸編碼本&&不等於身份&&未連接通過關閉連接終止),那麼我應該解碼它作爲分塊編碼。如何在對等方關閉連接之前檢測最後的狀態? – 2012-07-24 13:05:28

+0

我認爲,「除非通過關閉連接終止消息」。短語定義了塊處理的退出條件(因爲塊可能進入不同的包中,當連接處於塊傳輸狀態時,它處於此狀態(附加塊),直到檢測到最後一個塊(長度爲0)或連接關閉)......類似於If(傳遞編碼存在&&不等於身份){while(不是塊的末端或不是連接的結束){對塊做必要的事情}}; – 2012-07-24 13:28:16

+0

這聽起來對我來說很奇怪。我認爲除非收到最後一個塊,否則我不應該相信消息正文。 – 2012-07-24 13:40:27