2011-03-20 43 views

回答

10

什麼是應該發生的,是你應該與發送請求頭:

Expect: 100-continue 

頭。然後,在發送標題之後,但在發送有效負載之前,您應該檢查是否獲得100響應或417響應。如果您收到100響應,您可以繼續發送有效負載。如果你不這樣做,你應該停下來。

前提是,當您準備發送該10GB文件時,服務器有機會說「Hold on,cowboy」,然後您可以比服務器更簡潔地處理該過程閉上你。

事實上,你得到了100回,而你並沒有期待它,說你可能有100和200(或其他)的迴應。在發送標題之後,100發送給你,然後在請求完成時的最終響應。

你沒有注意到它真的是一個細節。

但是,理想情況下,未來您的處理可以考慮正確的中間請求響應。

如果你沒有發送Expect頭文件,服務器不應該發送給你100個,因爲你沒有告訴它你要處理它。如果你發送了Expect頭文件,那麼100應該不會讓你感到意外。

+1

2更正。 1)RFC 2616表示,對於PUT和POST請求,有一個例外,即使沒有從客戶端發送預期標題,服務器也可以發送100個繼續。 2)417意味着服務器不理解預期的頭部,客戶端應該重試而沒有預期的頭部。如果服務器回覆其他錯誤代碼,例如實體太大,則客戶端不應該再次發送請求。 – cyfdecyf 2013-07-06 10:08:24