http1.0是短连接,1.1默认是长连接了。服务器升级到1.1后,程序用libcurl发出去的请求有一半是没给应答的,跟踪数据发现:
curl的post机制在头位置会多加一行 Expect: 100-contine,当数据大于1024bytes,该行用来和服务器确认服务器是否收数据 。
然后就导致客户端发第一次业务请求没有收到业务结果,发第二次才有业务结果。
在head里面设置
curl_setopt(p, CURLOPT_HTTPHEADER, array('Expect:'));
那样子发出去的数据就不需要server先做个确认了。