有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是SOAP web服务优于REST的实时实际情况吗?

我读了很多关于为什么REST比SOAP更受欢迎的文章,还有很多关于这方面的实际情况。但我找不到一篇关于什么时候SOAP比REST更受欢迎的文章/答案。有谁能给我解释一下肥皂比其他东西更受欢迎的实时实际情况吗

注意-在未完全阅读问题之前,请不要将此问题标记为重复问题。这不是REST与SOAP的副本

注意-在未完全阅读问题之前,请不要将此问题标记为重复问题。这不是REST与SOAP的副本


共 (1) 个答案

  1. # 1 楼答案

    什么时候用肥皂?Representational State Transfer(REST)将标准HTTP/HTTPS实现为一个接口,允许客户端根据请求的URI访问资源。需要注意的是,基于REST的服务是无状态的,因为http/https本机是无状态的

    将HTTP/HTTPS作为接口实现的许多好处之一是可以在缓存中找到。缓存可以在web服务上完成,就像缓存在请求的web页面上完成一样。缓存允许减少web服务器的处理,并增加响应时间,因为内容已经被处理和存储以供即时访问。基于REST的服务执行的典型操作包括通用CRUD(创建、读取、更新和删除)操作和不需要状态的操作

    另一方面,简单对象访问协议(SOAP)使用通用接口来传输消息。与REST不同,SOAP可以使用HTTP/HTTPS、SMTP、JMS或任何其他标准传输协议。此外,SOAP以以下方式利用XML:

    Define a message
    Defines how a message is to be processed
    Defines the encoding of a message
    Lays out procedure calls and responses
    

    由于REST与资源视图更为一致,SOAP与方法视图更为一致,因为业务逻辑通常通过SOAP web服务作为方法公开,因为它们可以保留状态。此外,SOAP请求不会被缓存,因此服务器将处理每个请求

    如前所述,Soap确实保留状态,这使它在需要执行事务的服务中比REST具有特殊的优势,在这些事务中,为了完成一项任务需要对服务进行多次调用。此外,由于REST目前不支持,SOAP更适合于以契约形式实现标准交换格式的企业级服务

    在银行业中,人们可以看到一个现实世界中的例子,在这个例子中,人们更喜欢使用SOAP,而不是REST。在银行业中,资金是从一个账户转移到另一个账户的。SOAP将允许银行对一个账户执行交易,如果交易失败,SOAP将自动重试该交易,确保请求完成。不幸的是,对于REST,失败的服务调用必须由请求应用程序手动处理。 参考资料:

    Francia, S. (2010). SOAP vs. REST. Retrieved 11 20, 2011, from spf13: http://spf13.com/post/soap-vs-rest
    Rozlog, M. (2010). REST and SOAP: When Should I Use Each (or Both)? Retrieved 11 20, 2011, from Infoq.com: http://www.infoq.com/articles/rest-soap-when-to-use-each