SOAP Header中的mustUnderstand属性

  最近复习服务计算相关课程,讲到SOAP Header属性里的mustUnderstand属性。这里简单的说一下我对mustUnderstand的理解。

  在soap中,header是可选项,header由header blocks(header entities)组成。其实header项是可选的,并不是必须的。header让处于ultimate node之前的intermediaries能够对信息进行处理。能够为soap增加事务性的支持,比如路径啊,认证等等。这些都是用户自己定义的。

  再来说mustUnderstand。mustUnderstand属性是header三种属性之一,其他两个是actor和encodingStyle。关于mustUnderstand,ppt里讲“Receiver mode cannot handle mustUnderstand SOAP header block”。我怀疑这里应该是node而不是mode。。。mustUnderstand事实上是对intermediary的要求,要求节点必须能够处理属性信息,不然就会返回fault

<env:Body>
    <env:Fault>
        <faultcode>MustUnderstand</faultcode>
        <faultstring>
            One or more mandatory headers not understand
        </faultstring>
    </env:Fault>
</env:Body>

而且不能忽略掉。说到底,mustUnderstand要求中间节点必须能对某一个属性进行处理。否则就会报错。

posted @ 2018-12-29 20:34  siren27  阅读(2212)  评论(0编辑  收藏  举报