WebAPI与WebService以及WCF区别

1.支持的协议

  1.1webapi用的是http协议

  1.2webservice用的是soap协议

  1.3WCF支持SOAP协议,也支持TCP、HTTP、HTTPS、Named Pipes、MSMQ

2.http与soap关系

  http:是一个客户端与服务器端请求和应答的标准TCP。其目的是为了提供一种发送和接收http页面的方法。

 2.1 http协议的客户端与服务器的交互

  由http客户端发起一个请求,建立一个到服务器指定端口的TCP链接(默认是80端口)。http服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器发回一个状态行(HTTP/1.1 200 OK)和响应消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

  soap:它描述了一种在分散或者分布式的环境中如何交互信息的轻量级协议。soap在http协议的基础上,一个基于XML的协议。

两者的不同:都是底层通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。

两者关系: soap是一个通信协议,soap在http协议的基础上,把编写成XML的REQUEST参数,放在HTTP BODY上提交个WEB SERVICE服务器处理完成后,结果也写成XML作为RESPONSE送回用户端,为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用wsdl工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化绑定到XML里的去能力。

3.WCF和WEB API我该选择哪个?   

  3.1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF
  3.2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。
  3.3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
  3.4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

SOAP:Simple Object Access Protocol
简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

HTTP协议: 应用层
TCP协议 : 传输层

 

posted @ 2017-07-24 13:50  聆听的风声  阅读(301)  评论(0)    收藏  举报