1、http 100-continue用於客戶端在發送POST數據給服務器前,征詢服務器情況,看服務器是否處理POST的數據,如果不處理,客戶端則不上傳POST數據,如果處理,則POST上傳數據。在現實應用中,通過在POST大數據時,才會使用100-continue協議。
2、客戶端策略。
1)如果客戶端有POST數據要上傳,可以考慮使用100-continue協議。加入頭{"Expect":"100-continue"}
2)如果沒有POST數據,不能使用100-continue協議,因為這會讓服務端造成誤解。
3)並不是所有的Server都會正確實現100-continue協議,如果Client發送Expect:100-continue消息后,在timeout時間內無響應,Client需要立馬上傳POST數據。
4)有些Server會錯誤實現100-continue協議,在不需要此協議時返回100,此時客戶端應該忽略。
3、服務端策略。
1)正確情況下,收到請求后,返回100或錯誤碼。
2)如果在發送100-continue前收到了POST數據(客戶端提前發送POST數據),則不發送100響應碼(略去)。
參考RFC文檔:http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3