WebSerivce与WebAPI的区别
一、什么是Web Service
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。
WebService的数据格式是XML,消息体比较大,不如Web API简洁。
WebService是个很重型的规范,它的应用协议是SOAP(简单对象访问协议),它所依赖的下层通信方式不单单是HTTP,也有SOAP over SMTP, SOAP over TCP,由于HTTP协议群众基础广,开发调试方便,所以,成了WebService中最为流行的方式。
在某些业务复杂,稳定性和正确性要求高的领域(如ERP、电商、支付),WebService还有是用武之地的。
二、什么是Web API
Web API是网络应用程序接口。包含了广泛的功能,网络应用通过API接口,可以实现存储服务、消息服务、计算服务等能力,利用这些能力可以进行开发出强大功能的web应用。
它可以对接各种客户端(浏览器,移动设备),构建http服务的框架
Web API 入门指南:https://www.cnblogs.com/guyun/p/4589115.html
三、Web Service与Web API的关系
1. Web Service用的是SOAP协议,Web API用的是HTTP协议
http:是一个客户端和服务器端请求和应答的标准(TCP)。http协议其目的是为了提供一种发布和接收htttp页面的方法
一http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如”HTTP/1.1 200 OK”,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。soap在http协议的基础上,一个基于XML的协议。
不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。
关系:SOAP是个通信协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端, 为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。
2.数据传输中 XML与Json
Json的优点:数据结构清晰,可读性比XML强,解析规则简单;轻量级,灵活,性能比XML高
Json的缺点:数据类型定义不明确,如:{"price":12580}在json里,你无法知道这个价格是int, float还是double。
XML的优点:功能强大,数据类型强大,对数据内容的描述准确,有了它,妈妈再也不用担心后端发来的数据格式不对了。
XML的缺点:过分臃肿,有时强大的功能并不是我们所需要的;解析规则多,对追求高开发速度和低开发门槛的企业来说,是个致命伤。
WebSerivce与WebAPI的区别的更多相关文章
- MVC和WebApi的区别:
		1.mvc 和WebApi: 区别: a.MVC是建立网站的一种框架,倾向于返回用户的页面请求:webApi倾向于返回用户数据请求 b.mvc直接继承system.mvc.controller:web ... 
- 学习Web Service、wcf、webapi的区别
		csdn:关于wcf,webservice,webapi或者其他服务或者接口有什么区别. wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们 ... 
- .Net MVC 与WebApi  ActionFilterAttribute 区别
		首先我们来看下 这两个ActionFilterAttribute 的命名空间区别的: 可以看出mvc 引用的是System.Web.Mvc,webapi 引用的是System.Web.Http.Fil ... 
- Webservce、WCF、WebApi的区别
		Web Service It is based on SOAP and return data in XML form. It support only HTTP protocol. It is no ... 
- Web Service 与WebAPI 的区别
		Web Servise: web service 是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作系统平台,就是说服务器端程序采用Java编写,客户端程序则可以采用其他编程语言 ... 
- wcf必知必会以及与Webapi的区别
		快速阅读 介绍wcf中的信息交换模式MEP以及数据在传输过程中的序列化,endpont的介绍和wcf的三种实例模式以及安全模式 以及和Webapi的简单对比. wcf介绍 支持跨平台. 支持多种协议 ... 
- Asp.Net Core  WebAPI入门整理(一)
		一.Asp.Net Core WebAPI 1.目前版本是v1.1 2.默认路由处理和Asp.Net WebAPI有些 区别了,现在使用的是控制器路由[Route("api/Menu&qu ... 
- WebApi简介
		简单创建.NET Core WebApi:https://www.cnblogs.com/yanbigfeg/p/9197375.html 登陆验证四种方式:https://www.cnblogs.c ... 
- WebApi路由机制详解
		随着前后端分离的大热,WebApi在项目中的作用也是越来越重要,由于公司的原因我之前一直没有机会参与前后端分离的项目,但WebApi还是要学的呀,因为这东西确实很有用,可单独部署.与前端和App交互都 ... 
随机推荐
- 关于oracle RAC心跳线采用直连 还是交换机连接的建议
			关于oracle RAC心跳线的连接方式,各个论坛,包括网上文章的说法是:官方说是不建议直连,建议采用交换机连接的方式!PS:但是,一直没有找到官方文档的出处,有知道的兄弟,烦请评论区提供下地址!!! ... 
- Python中Gradient Boosting Machine(GBM)调参方法详解
			原文地址:Complete Guide to Parameter Tuning in Gradient Boosting (GBM) in Python by Aarshay Jain 原文翻译与校对 ... 
- Android从零开始
			Android开发环境的安装 1 IDE Android可以使用开发的IDE有Eclipse 或者 Android Studio.Android Studio还处于v 0.1.x版本,是early a ... 
- c++实现二叉树层序、前序创建二叉树,递归非递归实现二叉树遍历
			#include <iostream> #include <cstdio> #include <stdio.h> #include <string> # ... 
- C# 泛型类在使用中约束
			首先看一下泛型的基本语法 访问修饰符 返回类型 泛型方法名 <T>(T 参数) 1):无法在泛型方法内部给任何 T 类型创建实例的对象,因为在泛型方法内部不知道传进来的对象有哪些构造函 ... 
- Android_如何隐藏应用程序的图标
			接下来我要说的这种方法可以隐藏图标,同是也可以正常启动运行. 在manifest的入口activity里面intent-filter中设置<data></data>元素. 比如 ... 
- rubymine debug需要安装依赖
			for ruby2.x gem install ruby-debug-ide --pre gem install debase --pregem install debugger2 --pre 
- “声讨”高云的《jQuery技术内幕》
			1. 前言: 其实本文有点太标题党了,哈哈,见谅.说“声讨”,就是说说我作为一个<jQuery技术内幕>一个忠实读者,读本书的一些想法和建议. 2014年2月20日,我收到了<jQu ... 
- Java NIO 进程间通信
			转自:http://blog.csdn.net/lingzhm/article/details/45026119 传统的进程间通信的方式有大致如下几种: (1) 管道(PIPE) (2) 命名 ... 
- 使用Akka构建集群(二)
			前言 在<使用Akka构建集群(一)>一文中通过简单集群监听器的例子演示了如何使用Akka搭建一个简单的集群,但是这个例子“也许”离我们的实际业务场景太远,你基本不太可能去做这样的工作,除 ... 
