libcurl http头默认的Expect: 100-continue
默认是100-continue,原理:
- 先追加一个
Expect: 100-continue请求头信息,发送这个不包含 POST 数据的请求; - 如果服务器返回的响应头信息中包含
Expect: 100-continue,则表示 Server 愿意接受数据,这时才 POST 真正数据给 Server;
影响: server 回复一个< HTTP/1.1 100 Continue, 客户端一直不发数据,就一直卡着。
修复方法:
headers = curl_slist_append(headers, "Expect:");

本文详细解析了libcurl中默认的HTTP头Expect:100-continue的工作原理及其潜在问题。当客户端使用此设置时,它会先发送一个不包含实际数据的请求,等待服务器确认后再发送实际数据。若服务器一直未收到后续数据,可能会导致连接阻塞。文章还提供了一种禁用此功能的方法。
899

被折叠的 条评论
为什么被折叠?



