lighttpd不支援Expect: 100-continue的解決辦法
阿新 • • 發佈:2019-02-02
由於lighttpd1.4.21之前的版本不支援Expect: 100-continue,所以有可能訪問出現“HTTP/1.1 417 Expectation Failed”等錯誤提示,蒐集整理了很多解決方法,如下:
1. 升級到 lighttpd 1.5.x,那應該沒有這個問題了
2. (推薦)升級到 lighttpd 1.4.21 或以上版本(即最新的realease版本),在配置檔案中加上一句
server.reject-expect-100-with-417=”disabled”
3. 如果版本較低,但又不願意升級lighttpd版本,那麼1.4各版本之間的程式碼變化不大,可以檢視當前版本與1.4.21之間的差異,嘗試修改lighttpd的原始碼後編譯(我想沒有人選擇這個方法吧)
當然,如果不想改伺服器配置,那就改程式吧:
1. 對於.NET/C#等,在程式碼中加上一句:
System.Net.ServicePointManager.Expect100Continue = false;
或
request.ServicePoint.Expect100Continue = false;
2. 對於PHP,如果使用curl,則設定:
$ch = curl_init();
curl_setopt($ch,CURLOPT_HTTPHEADER,array(“Expect:”));