我发现apache xfire在其标题中添加了一个head参数: POST /testservice/services/TestService1.1 HTTP/1.1 SOAPAction: “testAPI” Content-Type: text/xml; charset=UTF-8 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.
POST /testservice/services/TestService1.1 HTTP/1.1
SOAPAction: “testAPI” Content-Type: text/xml; charset=UTF-8
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; XFire Client +http://xfire.codehaus.org)
Host: 192.168.10.111:9082
Expect: 100-continue
这个Expect:100-continue会在xfire客户端和它的端点服务器之间进行往返调用有点浪费,因为它会再使用一次握手让原始服务器返回“愿意接受请求”吗?
这只是我的猜测.
万斯
我知道这是一个古老的问题但是我正在研究这个问题,这是我的答案.你真的不需要使用“Expect:100-continue”,它确实引入了额外的往返.此标头的目的是向服务器指示您希望在发布数据之前验证您的请求.这也意味着如果设置了,您将致力于在发送表单或数据之前等待(在您自己的超时期限内 – 不是无限期!)服务器响应(100或HTTP失败).虽然它似乎是额外费用,但它意味着通过允许服务器让您知道不发送数据(因为请求失败)来提高故障情况下的性能.如果客户端未设置标头,则表示您没有等待来自服务器的100个代码,并且应该在请求正文中发送您的数据.这是相关标准:http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html(跳转到8.2.3节).
提示.NET 4用户:可以使用静态属性“Expect100Continue”禁用此标头
libcurl用户的提示:当禁用此标头不起作用时,旧版本7.15中存在错误;已在较新版本中修复(更多信息:http://curl.haxx.se/mail/lib-2006-08/0061.html)