1. 程式人生 > >lighttpd不支援Expect: 100-continue的解決辦法

lighttpd不支援Expect: 100-continue的解決辦法

由於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:”));