“这对”意味着什么;“理解”;标记为“的soap标题”;“必须理解”;

“这对”意味着什么;“理解”;标记为“的soap标题”;“必须理解”;,soap,Soap,我正在学习肥皂。我看到一些头元素有一个可以设置为true或false的“mustunderstand”属性。但是“理解”soap消息意味着什么呢?要无误地解析它?我发现了一些网站 有人能告诉我发生了什么吗?为了调用web服务,您需要尊重它的合同。如果一个web服务有和,但您将发送给它,您将得到一个错误(SOAP术语中的错误) web服务具有操作和,并且知道在消息包含或时如何处理消息。但是它没有,也不知道如何处理包含的消息,所以它只返回一个错误。一个不正确的主体不能被忽略,但另一方面,标题对它们是

我正在学习肥皂。我看到一些头元素有一个可以设置为true或false的“mustunderstand”属性。但是“理解”soap消息意味着什么呢?要无误地解析它?我发现了一些网站


有人能告诉我发生了什么吗?

为了调用web服务,您需要尊重它的合同。如果一个web服务有
,但您将
发送给它,您将得到一个错误(SOAP术语中的错误)

web服务具有操作
,并且知道在消息包含
时如何处理消息。但是它没有
,也不知道如何处理包含
的消息,所以它只返回一个错误。一个不正确的主体不能被忽略,但另一方面,标题对它们是什么没有限制,所以你需要一个不同的机制来正确处理它们

标头用于通过添加事务支持、身份验证、路由等来扩展消息。但是这些扩展没有在SOAP规范中定义,它们是用户定义的。该规范只是说,头是用于此目的的,并且还指定了当存在头时必须如何处理消息
mustUnderstand
属性是“如何处理邮件”的一部分。

SOAP消息可能通过沿着消息路径通过一组SOAP中介体,从发起者传递到最终目的地。标头可以针对特定节点或最终节点(即SOAP 1.1
actor
属性或SOAP 1.2
role
属性),发生这种情况时,节点必须对标头执行某些操作。这可以是使用它,也可以是忽略它

mustUnderstand
属性指示头的处理是可选的还是强制性的。这基本上转化为节点试图找到与头匹配的适当处理程序,并以符合其规范的方式继续处理消息。如果找不到合适的处理程序,则必须返回错误并停止进一步处理。如果
mustUnderstand
为true/1,则不允许节点忽略它。

例如,假设报头用于事务语义(即,调用必须在事务中执行,以便以原子方式执行操作,要么全部成功,要么全部失败)。如果处理节点看到事务标头,则应启动该事务。想象一下,如果节点看到报头,但不知道它是什么,因此决定忽略它,而不启动任何事务,会发生什么情况。 之后,一些操作失败,而另一些操作成功,并且没有要回滚的事务。因此,现在您的应用程序处于不一致的状态

SOAP mustUnderstand属性允许健壮的演化。必须假定使用值为“1”的SOAP mustUnderstand属性标记的元素以某种方式修改其父元素或对等元素的语义。以这种方式标记元素可以确保语义上的这种变化不会被那些可能不完全理解它的人默默地(并且可能是错误地)忽略