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


你可能感兴趣的:(PHP,服务器,lighttpd)