用于Web服务的SOAP还是REST?

用于Web服务的SOAP还是REST?

REST是进行Web服务的更好方法还是SOAP?或者是针对不同问题的不同工具?或者这是一个微妙的问题-也就是说,在某些领域,一个比另一个稍微好一些,等等?

我特别希望了解这些概念及其与PHP世界以及现代高端网络应用程序之间的关系。


繁星点点滴滴
浏览 533回答 3
3回答

Smart猫小萌

我在惠普(Hewlett-Packard)工作时,从最初的规范中构建了首批SOAP服务器之一,包括代码生成和WSDL生成。我不建议用肥皂做任何事。首字母缩写“肥皂”是个谎言。它不是简单的,它不是面向对象的,它没有定义任何访问规则.可以说,这是一项议定书。这是Don Box有史以来最糟糕的规范,这是一个相当了不起的壮举,因为他是犯下“com”罪的人。在SOAP中,没有什么是不能用REST传输的,JSON、XML,甚至是用于数据表示的纯文本。对于传输安全,可以使用https。对于身份验证,基本要求。会议上有饼干。其余版本将更简单、更清晰、运行更快、使用更少的带宽。XMLRPC明确定义了请求、响应和错误协议,大多数语言都有很好的库。然而,XML比您在许多任务中所需要的要重。

撒科打诨

REST是一种体系结构,SOAP是一种协议。这是第一个问题。您可以在REST应用程序中发送SOAP信封。SOAP本身实际上是非常基本和简单的,正是WSS-*标准使它变得非常复杂。如果您的使用者是其他应用程序和其他服务器,那么现在对SOAP协议的支持非常多,移动数据的基本原理就是在现代IDE中点击鼠标。如果您的消费者更可能是RIA或Ajax客户端,那么您可能需要比SOAP更简单的东西,并且更适合客户机(尤其是JSON)。通过HTTP发送的JSON数据包不一定是REST架构,它只是发送给URL的消息。所有这些都是完全可行的,但REST成语有一些关键的组成部分。然而,这两者很容易混淆。但是,仅仅因为您正在谈论HTTP请求,并不一定意味着您有一个REST体系结构。您可以使用没有HTTP的REST应用程序(注意,这是很少见的)。因此,如果您有使用SOAP的服务器和使用者,SOAP和WSS堆栈可以很好地为您服务。如果您正在做更多的临时工作,并且希望更好地与Web浏览器交互,那么一些更轻的HTTP协议也可以很好地工作。
打开App,查看更多内容
随时随地看视频慕课网APP