2015-05-25 50 views
1

HTTP_EXPECT頭是什麼?什麼是HTTP_EXPECT標頭?

我注意到它彈出在一些但不是我的所有日​​志中,並且好奇它是什麼意思?

+0

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.20 –

回答

3

我從來沒有聽說過這個標題,但有一點研究是照亮。您可以閱讀spec for HTTP_EXPECT right here。然而,spec語言可能有點乾燥和技術性。較寬鬆的解釋如下:

客戶端可以發送大型機構的HTTP請求。如果因爲某種原因(例如,沒有用戶登錄或類似的)發現服務器最終會拒絕請求,這將會帶來帶寬的大量浪費。輸入HTTP_EXPECT標題。這個頭部基本上可以讓客戶端對服務器提出特殊要求; 「我的客戶預計,你會預先批准這個消息,否則......我甚至不會打擾大塊的東西。」在服務器端,服務器通常可以選擇以下兩種方式之一回應:

  • 超生一個100(請繼續!)響應,或
  • 417(沒了,預期失敗)響應。

這必須由服務器之前做過大貴請求體如下往下流管,所以100是那種你的最終響應(可能200)之前的中間反應,並417是最終響應,完全關閉管道,因此客戶端永遠不會流式傳輸數據。

現在,理論上期望頭是可擴展的,所以它可能被用於其他目的。客戶可以發送除100之外的其他內容。但是上面的用例似乎是這個頭文件的主要目的(如果不是唯一的話)。 See here for more info on the 100 response

對於JS開發者特別需要注意的是,我認爲值得指出的是Node有100-continue support,但是到目前爲止,還不支持other Expect headers