6
我在以分塊傳輸編碼格式對客戶端的響應中發送大量數據。在分塊傳輸編碼中發送的響應,並指示在已經發送了一些數據之後發生的錯誤
在回覆的寫作過程中,我應該如何處理髮生的任何錯誤中途?
我想知道是否有任何HTTP規範建議的做法,讓客戶知道確實響應不是成功的,但服務器遇到了一些問題。
我在以分塊傳輸編碼格式對客戶端的響應中發送大量數據。在分塊傳輸編碼中發送的響應,並指示在已經發送了一些數據之後發生的錯誤
在回覆的寫作過程中,我應該如何處理髮生的任何錯誤中途?
我想知道是否有任何HTTP規範建議的做法,讓客戶知道確實響應不是成功的,但服務器遇到了一些問題。
一旦你開始發送HTTP頭到客戶端,你不能發送任何東西。您必須完成發送您要發送的響應,即分塊的數據和關聯的標題。如果中途出現錯誤,則無法向客戶報告該錯誤。你所能做的就是關閉連接。客戶端沒有收到所有的頭文件,或者在響應結束時沒有收到終止的0長度塊。無論哪種方式都足以讓客戶端知道服務器在發送過程中遇到錯誤。
謝謝雷米。是的...我知道標題首先被髮送,並且一旦我們開始寫入流,就無法修改它們。正如你所建議的那樣,我目前關閉了連接,但想知道HTTP Spec是否有其他方式說明如何讓客戶知道它。這個0長的塊有意思,我會檢查看看我是否可以在該區域做些什麼。 –
只有兩種方法可以讓客戶知道出現了問題。關閉連接(這是你應該做的),因爲除了接收最後一個0長度塊以外的任何東西都是錯誤,或者在發送最後一個0-長度塊之後在分塊頁腳中放置一個自定義HTTP頭。儘管大多數客戶可能會忽略這樣的頭文件,但如果您正在編寫自己的客戶端,那麼您可以查找該頭文件。 –
確定..謝謝!雷米... –