zoukankan      html  css  js  c++  java
  • WebAPI 和 webservice接口

    1. webservice走HTTP协议和80端口。WebService则类似于bs架构,只需要开发服务器端,不需要开发客户端,客户端只要遵循soap协议,就可以调用。

    2. api,用的协议和端口,是根据开发人员定义的。 api类似于cs架构,需要同时开发客户端API和服务器端程序。

    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里去的能力。

    Web Service

    1、它是基于SOAP协议的,数据格式是XML

    2、只支持HTTP协议

    3、它不是开源的,但可以被任意一个了解XML的人使用

    4、它只能部署在IIS上 

    WCF

    1、这个也是基于SOAP的,数据格式是XML

    2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

    3、WCF的主要问题是,它配置起来特别的繁琐

    4、它不是开源的,但可以被任意一个了解XML的人使用

    5、它可以部署应用程序中或者IIS上或者Windows服务中

    Web API

    1、这是一个简单的构建HTTP服务的新框架

    2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术

    3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)

    4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮

    5、它可以部署在应用程序和IIS上

    6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好

    7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。

    技术这么多,我该选谁?

    1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF

    2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、NamedPipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。

    3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择WebAPI

    4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

  • 相关阅读:
    HDU 3951 (博弈) Coin Game
    HDU 3863 (博弈) No Gambling
    HDU 3544 (不平等博弈) Alice's Game
    POJ 3225 (线段树 区间更新) Help with Intervals
    POJ 2528 (线段树 离散化) Mayor's posters
    POJ 3468 (线段树 区间增减) A Simple Problem with Integers
    HDU 1698 (线段树 区间更新) Just a Hook
    POJ (线段树) Who Gets the Most Candies?
    POJ 2828 (线段树 单点更新) Buy Tickets
    HDU 2795 (线段树 单点更新) Billboard
  • 原文地址:https://www.cnblogs.com/bolang100/p/10642419.html
Copyright © 2011-2022 走看看