web服务的定义可以分为两大类型:基于SOAP协议和基于REST风格。
SOAP协议最初是用来提供“简单对象访问”的一种协议,意想不到的是,现在SOAP也是面向服务架构SOA的协议。目前SOAP只不过是一种XML语言片段,其中信息以消息方式存放。在基于SOAP的web服务中,SOAP协议通常属于基础设施,对于服务的调用是透明的。比如,在“请求/响应”模式的消息交换方式这样一个典型应用场景中,客户调用底层的SOAP库并发出一个SOAP消息作为一个服务请求,web服务通过调用底层SOAP库实现返回另外一个SOAP消息,作为相对应的服务请求响应。
REST意为“表象化状态转变”,是HTTP协议规范专家组主要作者之一的Roy Fielding博士在他的博士论文中,针对基于web服务的设计思想所提出的一个新的缩写词。它与基于SOAP协议的web服务区别并不明显。
目前看来,SOAP隶属万维网协会,具有较多的开发工具和实现库。而REST由于不是一个标准协议规范,因此对其提供支持的开发工具、实现库都相对比较少。由于基于SOAP的web服务定义复杂、行动迟缓,因此REST设计风格通常作为一种替代出现。
web服务的一个重要特点就是语言的透明性:服务的实现和调用客户端可以分别由不同的计算机语言编写。由此可见语言无关对web服务之间的交互来说是一个关键特点。
另外,web服务主要基于HTTP协议,但web服务并不一定要基于HTTP才能实现,同样也可以基于其他流行的通信协议进行系统间服务的交互 。