最近复习服务计算相关课程,讲到SOAP Header属性里的mustUnderstand属性。这里简单的说一下我对mustUnderstand的理解。 在soap中,header是可选项,header由header blocks(header entities)组成。其实
最近复习服务计算相关课程,讲到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要求中间节点必须能对某一个属性进行处理。否则就会报错。