2013-06-20 15 views

回答

5

一旦你開始發送HTTP頭到客戶端,你不能發送任何東西。您必須完成發送您要發送的響應,即分塊的數據和關聯的標題。如果中途出現錯誤,則無法向客戶報告該錯誤。你所能做的就是關閉連接。客戶端沒有收到所有的頭文件,或者在響應結束時沒有收到終止的0長度塊。無論哪種方式都足以讓客戶端知道服務器在發送過程中遇到錯誤。

+0

謝謝雷米。是的...我知道標題首先被髮送,並且一旦我們開始寫入流,就無法修改它們。正如你所建議的那樣,我目前關閉了連接,但想知道HTTP Spec是否有其他方式說明如何讓客戶知道它。這個0長的塊有意思,我會檢查看看我是否可以在該區域做些什麼。 –

+0

只有兩種方法可以讓客戶知道出現了問題。關閉連接(這是你應該做的),因爲除了接收最後一個0長度塊以外的任何東西都是錯誤,或者在發送最後一個0-長度塊之後在分塊頁腳中放置一個自定義HTTP頭。儘管大多數客戶可能會忽略這樣的頭文件,但如果您正在編寫自己的客戶端,那麼您可以查找該頭文件。 –

+0

確定..謝謝!雷米... –

相關問題