繁体   English   中英

从服务器收到几个100-continue

[英]Several 100-continue received from the server


我正在使用libcurl(c ++)库向IIS 7.5服务器发出请求。 该事务是一个常见的SOAP Web服务

一切正常,我的请求发送一个“Expect 100-continue”标志,服务器响应100-continue,然后立即响应200 ok代码以及Web服务响应。

但有时,客户端收到100-continue消息,然后再收到100个代码。 这使得客户端报告错误,因为它期望在服务器100代码之后立即获得最终状态代码。 我读了W3C HTTP1.1协议:

发送100(继续)响应的源服务器必须在收到并处理请求主体后最终发送最终状态代码,除非它过早终止传输连接。

“最终”这个词让我失去了轨道。 服务器在最终状态代码之后发送多个100个代码是否可能/常见?

如果有人以前遇到过这个问题,可以指出我如何使用libcurl处理多个100响应代码的任何解释?

提前致谢

目前的规范说 100-继续:

100(继续)状态代码表示已收到请求的初始部分,但尚未被服务器拒绝。 服务器打算在完全接收并执行请求后发送最终响应。

当请求包含包含100-继续期望的Expect头字段时,100响应指示服务器希望接收请求有效负载主体,如第5.1.1节中所述。 客户端应该继续发送请求并丢弃100响应。

如果请求不包含包含100-continue期望的Expect头字段,则客户端可以简单地丢弃此临时响应。

我读它的方式,它不应该超过一个100-continue响应头,这就是为什么libcurl像这样工作。 我从未见过这个(多个100个响应)发生,我已经做了一段时间的HTTP(我是curl的主要开发者)。 要改变这种行为,我希望你需要稍微修改libcurl以允许这种情况发生。

这是相关的CURLOPT_FAILONERROR。

我怀疑是因为有一个未处理的错误,客户端无法正确处理。 确保设置CURLOPT_FAILONERROR标志。

有关更多信息,请参阅此SO帖子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM