我们是否需要xfire请求标头中的"Expect:100-continue"标头?

Van*_*nce 4 performance web-services xfire http-headers

我发现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(兼容; MSIE 6.0; Windows NT 5.0; XFire Client + http://xfire.codehaus.org)
主持人:192.168.10.111 :9082
期望:100-continue

这个Expect:100-continue会在xfire客户端和它的端点服务器之间进行往返调用有点浪费,因为它会再使用一次握手让原始服务器返回"愿意接受请求"吗?

这只是我的猜测.

万斯

bro*_*ekk 7

我知道这是一个古老的问题但是我正在研究这个问题,这是我的答案.你真的不需要使用"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)