终结点的地址除了有一个表示uri标识某个终结点之外,还有一个类型为AddressHeaderCollection的Headers属性用于保存一些寻址有关的信息。
一个完整的SOAP消息由一个消息主体(Body)和一组消息报头(Header)组成。主体部分一般是对业务数据的封装,而消息报头用于保存一些控制信息。
服务端终结点的地址报头主要用于辅助实现对终结点的选择。由于一个服务可以具有多个终结点,服务端在接收到请求消息后需要将其分发给匹配的终结点。
在默认情况下,WCF采用基于地址匹配的消息筛选策略。由于消息(SOAP)具有一个<To>报头表示调用服务的地址,被选择的终结点地址必须具有相匹配的Uri。如果终结点地址具有相应的地址报头,则要求消息请求也具有相应的地址报头。只有满足这两个条件的终结点才会最终被选择用于处理请求消息。
筛选机制有3种,Exact和Prefix都需要进行地址报头匹配,而Any则不需要。