webservicewebapi,webservicewebapi区别
WebService与WebApi的区别
1 基于SOAP协议的,数据格式为XML
2 只支持HTTP协议
3 不是开源的,但可以被任意一个了解XML的人使用
4 只能部署在IIS上
SOAP :简单对象访问协议Simple Object Access Protocol,传输层 ,,XML传输消息
WSDL :Web Server Description Language :Web Server描述语言(元数据),给客户端生成代理类的一个描述信息
UDDI :提供了一组基于标准的规范用于描述和发现服务,统一描述,发现和集成(UDDI-Universal Descript,Discovery,Integration),提供注册和查找服务
客户端在UDDI注册表(Registry)查找服务,取得服务的WSDL描述,通过SOAP调用服务。
1 是简单的 构建HTTP服务的新框架
2 在.net平台上WebApi是一个开源的,理想的,构建REST-FUL服务的技术
3 不想WCF REST Server 它可以使用HTTP的全部特点(URI,request/response头,缓存,版本控制,多种内容格式)
4 支持MVC的特征。像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。
4 可以部署在IIS和应用程序上
6 轻量级框架,并且对限制带宽的设备,比如智能手机等支持的很好
7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
8、Web API非常适合构建移动客户端服务
1、 需要Web Service但是不需要SOAP
2、 需要在已有的WCF服务基础上建立non-soap-based http服务
3、 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
4、 发布的服务可能会被带宽受限的设备访问
5、 希望使用开源框架,关键时候可以自己调试或者自定义一下框架
6、如果服务需要在http协议上,并且希望利用http协议的各种功能
7、如果服务需要被各种客户端(特别是移动客户端)调用
webapi多用于基于http请求的服务应用,比如说移动服务端或者需要提供第三方API 服务的场景下
webservice也可以应用于webapi所在的场景,一般是做为内部服务的使用,好比如果一个系统用wcf/webservice作为内部子系统间的服务通信,而webapi用于外部服务的请求。
WebService、WCF和WebApi的区别和特点
Web Service :Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务
1.)它是基于SOAP协议的,数据格式是XML
2.)只支持HTTP协议
3.)它不是开源的,但可以被任何一个了解XML的人使用
4.)它只能部署到IIS上
WCF :是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术
1.)它也是基于SOAP的,数据格式是XML
2.)它是Web Service的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS等
3.)WCF配置较为繁琐
4.)它不是开源的,但可以被任意一个了解XML的人使用
5.)它可以部署到应用程序中或IIS及Windows服务中
Web Api :与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务
1.)在.net平台上Web Api是一个开源的、理想的、构建REST-ful服务的技术
2.)它可以使用HTTP的全部特点,比如URIs、request/response头,缓存,版本控制,多种内容格式
3.)它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试
4.)它可以部署在应用程序和IIS上
5.)这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
6.)Response可以被Web API的MediaTypeFormatter转换成Json、XML 等格式
WebService和Webapi的区别
webapi用的是http协议,webservice用的是soap协议
webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作
http soap关系
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里去的能力。
WCF和WEB API我该选择哪个?
1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF
2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。
3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API
SOAP:Simple Object Access Protocol
简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
HTTP协议: 应用层
TCP协议 : 传输层
HTTP协议详解之响应篇
在接收和解释请求消息后,服务器返回一个HTTP响应消息。
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
1、状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)
2、响应报头后述
3、响应正文就是服务器返回的资源的内容
从WebService到WebAPI
??1996年,Gartner前瞻性地提出了面向服务架构的思想(SOA)。
??Service Oriented Ambiguity 中文一般理解为:面向服务架构,简称SOA,这个概念算得上微服务的鼻祖了。
??SOA 的提出是在企业计算领域,就是要将紧耦合的系统,划分为面向业务的、粗粒度、松耦合、无状态的服务。服务发布出来供其他服务调用,一组互相依赖的服务就构成了SOA架构下的系统。
?? SOA本质上是服务的集合。
??微软技术栈下:
??总体来说,两者都是服务,只是表现形式存在一些差异:
1、518fans粉丝网的
2、无为无味无心的
3、cysong168的博客
4、百度知道