首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >REST和WebServices之间的区别

REST和WebServices之间的区别
EN

Stack Overflow用户
提问于 2009-09-18 00:08:16
回答 2查看 46.7K关注 0票数 58

REST和WebService ( SOAP )之间的区别是什么?我研究了facebook api,它们使用HTTP头和一些参数(可能是xml或非),并以xml格式返回结果,而其他SOAP的功能完全相同,即HTTP header+ xml参数和返回headers + xml。

REST还需要一些经过身份验证的令牌,而else SOAP使用http session,这与用于身份验证和其他信息的令牌完全相同。我所能看到的就是SOAP是REST的一个小高级版本?

或者,是否还有其他性能方面的考虑?阅读有关REST的文章只是谈到了非常高级别的客户端-服务器通信,但即使是SOAP也做了完全相同的事情。谁能告诉我它可以在哪里定义REST和SOAP的正确边界。

我们在.net中透明地使用了很多SOAP,然而我只想知道,在目前一切都运行得非常顺利的情况下,是否真的值得注意休息。

我知道REST是一种架构,SOAP是一种协议,但我的问题是,目前SOAP的ASP.NET WebService实现是否具有REST架构?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-18 00:27:13

SOAP是一种用于通过HTTP以XML形式发送/接收数据的协议。

典型的WebService是一些描述如何调用它的方法。对于这些应该如何构造,没有真正的约定,因此您总是需要大量的API文档。

通常情况下,这类似于(对于ASP.NET):

  • HTTP POST to mysite.com/products.asmx/ListAllProducts -将XML产品列表
  • HTTP POST返回到mysite.com/products.asmx/GetProduct -将发布内容中基于SOAP XML的产品XML返回到mysite.com/products.asmx/
  • HTTP POST to mysite.com/products.asmx/UpdateProduct -根据发布内容中的SOAP XML更改产品<代码>H29F210

REST更像是一种组织所有方法的约定:

来自mysite.com/products的

  • HTTP GET -从mysite.com/products/14返回列出所有产品产品的XML或JSON -将产品14的XML或JSON
  • HTTP POST返回到mysite.com/products/14 -将产品14更改为您在HTML表单中发布的内容。
  • HTTP<代码>D22到mysite.com/products/14 -删除产品14 H223<代码>HTTP到mysite.com/products -添加新产品

<代码>F227

因此,REST的工作方式更符合您对浏览器URL的期望。在这种方式下,它更自然,作为一种约定更容易理解。所有REST都以类似的方式工作,因此您不必花费太多时间来了解每个系统的怪癖。

票数 72
EN

Stack Overflow用户

发布于 2009-09-18 00:38:14

对我来说,使用RESTful方法实现的服务在可访问性方面胜过使用SOAP或RPC的服务。在相对封闭的系统中,可以使用工具基于WSDL生成存根和连接,这并不是特别重要。然而,如果你想创建广泛的客户端可访问和可用的服务,那么REST服务的统一性和使用它们的简易性是一个很大的优点,即你不需要沉重的RPC堆栈,只需要发出HTTP请求的能力。

我不确定这是否完全回答了您的问题,但如果,正如您所说,您有一个基于SOAP的系统(并且您控制客户端和服务器),那么我看不到任何更改的理由。此外,一些服务自然会更适合基于RPC的访问,在这种情况下,SOAP接口将更合适。

在性能方面,如果您不使用SOAP,那么将有效地从客户端和服务器技术堆栈中删除一个或多个层,因此,在所有其他条件相同的情况下,公开RESTful接口的服务将在那里获胜。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1443160

复制
相关文章
REST API和SOAP API之间的区别
The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。
全栈程序员站长
2022/09/14
1.3K0
REST API和SOAP API之间的区别
The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。
程序你好
2018/08/09
2K0
REST API和SOAP API之间的区别
RPC和REST的区别(转)
原文: http://pgoy.wordpress.com/2007/09/08/rpc%e5%92%8crest%e7%9a%84%e5%8c%ba%e5%88%ab%ef%bc%88%e5%8e%9f%e5%88%9b%ef%bc%89/
全栈程序员站长
2021/05/19
5780
HTTP和HTTPS 之间的区别
PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。
全栈程序员站长
2022/07/19
1.5K0
associateBy 和 groupBy 之间的区别
函数associateBy和groupBy构建来自由指定键索引的集合的元素的映射。key在keySelector参数中定义。
一个会写诗的程序员
2019/08/08
2.3K0
Java和JavaScript之间的区别
我们将在本文中比较Java语言和JavaScript语言。 JavaScript由Netscape开发。 它最初是用于客户端的脚本语言,后来又用作客户端和服务器脚本的语言。 Java由James Gosling由Sun Microsystems开发。 这些天来,JavaScript在服务器中以node.js的形式使用。 Java和JavaScript之间在程序编码,编译和运行方式方面存在许多差异。
全栈程序员站长
2022/09/08
2K0
Java和JavaScript之间的区别
REST API和SOAP API区别[通俗易懂]
REST API 优点: 1. 轻量级的解决方案,不必向SOAP那样要构建一个标准的SOAP XML。 2. 可读性比较好:可以把URL的名字取得有实际意义。 3. 不需要SDK支持:直接一个Http请求就可以,但是SOAP则可能需要使用到一些Webservice的类库(例如Apache的Axis) 缺点: 1. 复杂的应用中,URL可能非常长,而且不容易解析。 SOAP API 优点: 1. 定义严格。必须符合SOAP的格式 2. 某些时候使用比较方便 3. 开发工具支持比较多一点。 缺点: 1. 需要生成WSDL文件
全栈程序员站长
2022/09/14
2K0
高手,云集在于REST、gRPC 和 GraphQL之间!
每当看着这些名词,我都会进入选择困难症。这些丰富多彩的协议填满了我们的工具箱,同时也抛出了一个难题:如果我想要自己的程序健康长久,就不得不了解它们到底是什么东西。
xjjdog
2022/09/26
4280
Statement 和 PreparedStatement之间的关系和区别
大家好,又见面了,我是你们的朋友全栈君。 Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高 详解: 1、PreparedStatement:表示预编译的 SQL 语句的对象。 接口:public interface PreparedStatement extends
全栈程序员站长
2022/08/11
1.7K0
Statement 和 PreparedStatement之间的关系和区别
var、let和const之间的区别
即 let和 const不需要先声明,再使用,否则会报错,而 var不需要先声明再使用,可以先使用后声明,不会报错,不过赋值的时候,值一直是 undefined
赤蓝紫
2023/03/11
1.3K0
var、let和const之间的区别
理解 CI 和 CD 之间的区别
大家好,我是 ConardLi,今天我们来看一个研发中非常常见的概念,CI/CD,你有了解过它们的区别吗?(本文由 wangjie 翻译)
ConardLi
2021/12/21
1.6K0
理解 CI 和 CD 之间的区别
PAAS、IAAS和SAAS之间的区别
你一定听说过云计算中的三个“高大上”的你一定听说过云计算中的三个“高大上”的概念:IaaS、PaaS和SaaS,这几个术语并不好理解。不过,如果你是个吃货,还喜欢披萨,这个问题就好解决了!好吧,其实你
chenchenchen
2022/05/07
2.2K0
PAAS、IAAS和SAAS之间的区别
0.0.0.0、127.0.0.1和localhost之间的区别
localhost localhost其实是个域名,而不是一个ip地址。之所以我们经常把localhost与127.0.0.1认为是同一个是因为我们使用的大多数系统上都默认localhost指向了127.0.0.1这个地址。 在linux系统中,/ets/hosts文件中都会有如下内容:
用户1679793
2019/12/31
4.2K0
Rest和RPC接口区别「建议收藏」
接口调用通常包含两个部分,序列化和通信协议。常见的序列化协议包括json、xml、hession、protobuf、thrift、text、bytes等;通信比较流行的是http、soap、websockect,RPC通常基于TCP实现,常用框架例如dubbo,netty、mina、thrift
全栈程序员站长
2022/09/27
7970
JVM,JRE,JDK之间的区别和联系
Java Api是Java的应用程序接口,里面有很多写好的Java Class,包含一些重要的语法结构以及基本图形,网络和文件IO,我们可以直接调用。
入门笔记
2022/06/02
9210
JVM,JRE,JDK之间的区别和联系
【技术分享】Spark和Hadoop之间的区别
大数据开发中Spark和Hadoop作为辅助模块受到了很大的欢迎,但是Spark和Hadoop区别在哪?哪种更适合我们呢,一起了解一下它们之间的区别。
加米谷大数据
2019/01/08
9760
String、StringBuffer、StringBulider之间的联系和区别
首先,我们大概总体的解释一下这三者的区别和联系 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。 StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。 StringBuilder和StringBuffer类功能基本相似,唯一的区别就是StringBuilder不是线程安全的。 下面具体看看: 1. String 类  String的值是不可变的,这就导致每次对Strin
Dato
2018/04/17
1K0
tali -f 和 tail -F 之间的区别
tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
西湖醋鱼
2020/12/30
1.2K0
Javascript 值和引用之间的区别
在JavaScript中,可以通过值和引用传递。两者之间的主要区别是,按值传递发生在赋值基本类型的时候,而赋值对象时按引用传递。接下来,跟着智哥,来详细看看。
前端小智@大迁世界
2021/04/19
1.3K0
Javascript 值和引用之间的区别
点击加载更多

相似问题

和REST之间的区别

10

Apex REST和REST API之间的区别

32

Apache Camel在rest()和from("rest:get")之间的区别

115

webservices和API的区别是什么?

10

restful和rest api之间有区别吗

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文