SOAP Web服务和RESTFUL Web服务之间的区别

时间:2011-09-26 20:48:24

标签: java web-services rest soap

我是Java的新手。我知道有两种类型的Web服务

  1. SOAP Webservice。
  2. RESTful Webservice。
  3. 任何人都可以告诉我两者之间的基本区别。在哪种情况下SOAP Webservice被创建,在哪种情况下RESTful Webservice被创建。

    谢谢,

3 个答案:

答案 0 :(得分:13)

在最基本的层面上,SOAP是一种消息传递协议,REST是一种设计理念,而不是协议。当您在SOAP协议上建立WebService时,您基本上遵守创建服务请求的SOAP规则,将请求发布到服务器,在服务器接收请求,处理请求并将结果作为SOAP消息返回.SOAP不会谈关于客户从服务中获益的确切方式,以及如何设计客户端本身(除了它发布的消息之外),它只告诉客户端的消息如何发送到服务并返回。

REST是REpresentational State Transfer的缩写。它没有指定创建消息并将其发布到服务器的规则。您可以通过简单的HTTP协议来完成此操作。 REST指定的是客户端和服务器管理其状态的方式,以便它们对客户端 - 服务器通信有用。在这里,您更专注于设计客户端和服务器的状态,而不是他们正在交换的消息。

答案 1 :(得分:5)

正如第一个答案已经解释的那样,SOAP Web服务和REST Web服务在各个方面都有所不同。

SOAP:

  • 在.wsdl文件中定义接口,该文件准确描述了预期的输入参数以及返回值的外观
  • 有一些工具可以用java类hirarchies生成.wsdl文件。 JAXB for example
  • 还有一些工具可以生成java对象/类作为eclipse的一部分(例如暂时不知道名称)。
  • SOAP非常严格。在处理之前,每个请求都是针对wsdl进行验证的。

开始使用SOAP WS框架的好处是Apache CXF

REST(到目前为止没有亲身体验,随时纠正和改进;)):

  • 访问网络服务器或网络应用程序以从中检索数据或向其发送数据的方法。
  • 它只是协商,如何访问。
  • common就像这个http://server.domain.com/app/type/id=123一样,用于检索id = 123
  • 的类型类型的对象
  • 非常直观,但没有自动验证请求。
  • ...

我相信,我还错过了其他几点。但我认为这是一个有用的开始。

答案 2 :(得分:2)

你也可以用Google搜索;这是一篇关于这个主题的好文章: http://geeknizer.com/rest-vs-soap-using-http-choosing-the-right-webservice-protocol/