首页 > 其他分享 >Restful和WebService区别

Restful和WebService区别

时间:2023-05-19 11:14:25浏览次数:50  
标签:Web 调用 服务 WebService 区别 REST Restful SOAP

简介

  • Restful是一种架构风格,其核心是面向资源,更简单;

  • 而webService底层SOAP协议,主要核心是面向活动;

两个都是通过web请求调用接口

RESTful是什么

REST就是(REpresentational State Transfer单词太长记不住就对了)是一种构架风格,REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或者设计就是RESTful,核心就是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性,为什么这么说,因为RESTful是无状态的无状态是指任意一个web请求必须完全与其他请求隔离,是独立的,当请求端提出请求时,请求本身包含了这一请求的全部信息,这个约束提高系统的可伸缩性,可见性,可靠性。无状态优势就是在调用接口,操作资源的时候,可以不考虑上下文,不用考虑当前状态,降低复杂度。

REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。
REST提出设计概念和准则为:

  1. 网络上的所有事物都可以被抽象为资源(resource)
  2. 每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
  3. 所有的操作都是无状态的

REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为创建,获取,更新和删除就可以完成相关的操作和处理。

我们可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。
其核心操作只有GET,PUT,POST,DELETE。

由于REST强制所有的操作都必须是stateless的,这就没有上下文的约束,如果做分布式,集群都不需要考虑上下文和会话保持的问题。极大的提高系统的可伸缩性。

调用方式

HttpClient、OKhttp、RestTemplate、WebClient

WebService是什么

WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。也就是说,你可以通过编程的方法通过Web来调用这个应用程序。它可以跨编程语言,跨操作系统平台的这么一个远程调用技术,采用SOAP(面向对象访问协议)协议传输

Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

调用原理

image
实现一个完整的Web服务包括以下步骤:

◆ Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册; (发布)

◆ Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务; (发现)

◆ Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读;(发现)

◆ 利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;(绑定)

◆ Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。(绑定)

RESTful跟WebService的区别:

综上所述,REST是一种架构风格,其核心是面向资源,遵循CRUD原则,这个原则告诉我们对于资源只需要4种行为,分别是:创建,获取,更新和删除,并且这些资源执行的操作时通过HTTP协议规定的,而WebService底层是SOAP协议,核心是面向活动,有严格的规范和标准,包括安全,事务等方面。

如何选择使用RESTful还是WebService?

  • 首先看资源本身是那种简单的类似增删改查的业务操作,还是那种比较复杂,如转账,事务处理等。

  • 其次是看是否有严格的规范和标准的,而且有多个业务系统集成和开发的时候,我们使用SOAP协议就比较优势;如果是简单的数据操作,无事务处理,开发和调用比较简单的话使用REST架构风格比较有优势;较为复杂的面向活动的服务,我们使用REST意义不大。

标签:Web,调用,服务,WebService,区别,REST,Restful,SOAP
From: https://www.cnblogs.com/zhaojinhui/p/17414323.html

相关文章

  • API架构的选择,RESTful、GraphQL还是gRPC
    hi,我是熵减,见字如面。在现代的软件工程中,微服务或在客户端与服务端之间的信息传递的方式,比较常见的有三种架构设计的风格:RESTful、GraphQL和gRPC。每一种模式,都有其特点和合适的使用场景,今天,我们主要来对三种风格做一个深入的理解和对比,以方便我们在做技术选型时,能够做出有效的......
  • 多路复用IO模型和非阻塞IO模型的区别?
    常见的LinuxIO模型:阻塞IO模型:当应用程序调用read或write等IO操作时,如果内核没有准备好数据,那么应用程序就会一直阻塞等待,直到内核准备好数据后才会返回。在这种模型下,应用程序通常只能同时处理一个连接,效率较低。非阻塞IO模型:当应用程序调用read或write等IO操作后,如果内核没有......
  • 交换机、集线器、路由器和网桥的区别
    交换机、集线器、路由器和网桥是计算机网络中常见的网络设备,它们在网络中发挥不同的作用并位于不同的层次。下面是它们的区别和各自所在的层次:1.集线器(Hub)区别:集线器是一种简单的网络设备,用于将多个计算机连接在一起形成一个局域网。它的主要功能是将接收到的数据包广播到所有......
  • i7 13700f和i7 13700kf区别 i713700f和i713700kf参数对比
    酷睿i7-13700F采用intel7制程工艺性能核+能效核的高性能混合构架,拥有16核24线程,包括8个性能核心以及8个能效核心,最高睿频可达5.2GHz,同时配备24MBL2缓存以及36MBL3缓存,原生支持DDR5-5600、5200高频内存,无内置核显,需搭配独立显卡使用组装电脑选i713700f还是i713700kf怎么搭配......
  • h610和b660区别 h610和b660哪个好
    内存超频的区别:B660主板是支持内存超频的,H610不支持内存超频,但对于i3-12100f是不算区别的。12代不带k的处理器都锁SA电压不能超,一般稳不了3600gear1。而H610m的主板本身最高支持3200MHz频率内存,也达到了i312100f的上限。因此,虽然H610不支持内存超频,但对于i312100f是不影响的。......
  • TLS1.2握手流程分析(RSA,ECDHE),和TLS1.3区别
    目录一、加密算法简介1.2RSA简要流程1.1ECDHE简要流程二、TLS1.2握手消息简介三、TLS1.2RSA流程四、TLS1.2ECDHE流程五、TLS1.2和TLS1.3区别5.1更快的访问速度5.2更强的安全性六、wareshark抓包验证TLS1.2流程6.1搭建httpsserver(springboot)6.2请求并抓包6.3抓包结果分......
  • Java中==和equals的区别
    在Java中“==”和“equals()”都是用于比较两个对象是否相等,但是他们之间还是有着许多不同之处。两者的区别“==”是一个操作符,用于比较两个操作数的值是否相等。如果操作数为值类型,比较的是值是否相等,如果操作数为引用类型,比较的是地址值是否相等。“equals()”是一个定义在Ob......
  • b660主板和z690哪个好 b660和z690区别
    Z690系列主板全面CPU升级供电,引入PCIe5.0技术,其中支持PCIe5.0的插槽还额外采用4个坚固的固定针脚设计,以更好的支撑显卡的重量。主板选z590还是z690怎么搭配更合适这些点很重要http://www.adiannao.cn/du所有微星Z690主板的PCB板都升级为服务器级的PCB板,MEG系列主板更采用了铝背......
  • H610、B660和Z690的区别
    1、cpu、内存超频方面intel600系列主板只有Z690可以同时支持CPU和内存超频,B660主板仅支持内存超频,H610则是CPU、主板超频都不支持。组装电脑选H610、B660还是Z690怎么搭配更合适这些点很重要 http://www.adiannao.cn/du2、DDR5、DDR4内存支持方面从上图的规格来看,H610、B660、Z......
  • Ext中的get、getDom、getCmp、getBody、getDoc的区别
    Ext中包含了几个以get开头的方法,这些方法可以用来得到文档中DOM、得到当前文档中的组件、得到Ext元素等,在使用中要注意区别使用。1、get方法get方法用来得到一个Ext元素,也就是类型为Ext.Element的对象,Ext.Element类是Ext对DOM的封装,代表DOM的元素,可以为......