Asp.Net Web API(一)

什么是Web API

          HTTP不仅仅服务于Web Pages。他也是一个创建展示服务和数据的API的强大平台。HTTP是简单的,灵活的,无处不在的。你能够想象到几乎任何的平台都会有HTTP服务库。HTTP服务可以涉及到范围广泛的客户端,包括浏览器,各种移动设备和传统桌面应用程序。而Web API是提供了一套RestfulAPI的开发框架,它提供了较为完整的http语义支持。

Web API 与MVC 的区别

    1.使用区别

MVC主要用于Web站点开发,它在后端实现了一套完整的MVC开发框架,能提供方便的页面开发,提供给了后端Html构成,用户可以方便的开发出带页面的站点

           Web API主要用于做开放API接口,更抽象,更不注重VIew生成

     2.自身实现区别

             两种框架主要使在Asp.Net的基础上进行改造,主要是对HttpModule和HttpHandler做了扩展。

             MVC像是在一层上建立了第二层,引伸出更大的路由机制,实现了诸如MvcHandlerControllerFactory这种消息处理和后台控制器方法选择机制。而Web API除了扩展前者外,另外写出了一套独立的,独立于Asp.Net的消息处理管道,就像借鉴了原来的房子模型,重新设计出了另一套别墅,这也很好的解释了为什么Web API可以寄宿在不同的宿主上(宿主本质就是利用一个具体的一个用程序为Web API提供给一个可运行的环境,并解决请求的接收和响应的回复),如 Web Host,Self Host方式,这与WCF相似。而MVC只能寄宿与IIS上(不考虑.net core),就像WebForm的寄宿方式。何况它们两者虽然都有Controller和Action,但是请求的实现和响应的回复机制也是不同的,比如Web API处理消息的两个核心类是HttpRequestMessage和HttpResponseMessage。这两种框架最多只能说模式上相似,实现还有有很大区别。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏风中追风

为什么redis 是单线程的?

在说这个事前希望大家都能对 CPU 、 内存 、 硬盘的速度都有了解了,这样可能理解得更深刻一点,不了解的朋友点:CPU到底比内存跟硬盘快多少

1.1K11
来自专栏unlike

用paxos实现多副本日志系统--multi paxos部分

上篇 basic paxos : https://cloud.tencent.com/developer/article/1147420

4058
来自专栏开源优测

[快学Python3]浏览Python Manuals

概述 通常情况下,初学者都不愿意直接去浏览Python Manuals,即Python自带的官方文档。尤其是只有英文版的情况下,初学者更加不会去使用该官方文档了...

2799
来自专栏搜云库

操作系统和数据库基础

进程与线程的差别 进程是程序的一次执行。线程可以理解为进程中执行的一段程序片段。在一个多任务环境下中下面的概念可以帮助我们理解两者的区别。 进程间是独立的...

22010
来自专栏游戏杂谈

初试php中的curl

http://www.wapm.cn/phpdoc/zh/ref.curl.html

1362
来自专栏猿人谷

进程、线程、应用程序之间的关系

进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元, 或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度单元是线程。一个进...

2246
来自专栏网站漏洞修补

开源程序的网站漏洞检测对获取管理员密码漏洞如何修复

PbootCMS是网站常用的一款CMS系统,是由国内著名程序开发商翔云科技研发的一套网站CMS系统,免费开源,扩展性较高,使用的企业很多但是避免不了网站存在漏洞...

2254
来自专栏向治洪

将studio项目 转换为eclipse项目

总会有些奇怪的事情,比如,有的人就有将studio项目 转换为eclipse项目的需求 首先,不要因为编译原因而放弃。studio项目是完全可以转换成ecli...

1977
来自专栏做全栈攻城狮

安卓开发教程基础篇-多线程文件下载软件开发,断点续传技术揭秘

更多原创教程,关注微信公众平台:做全栈攻城狮。及做全栈攻城狮官网:www.8z5.net

892
来自专栏流柯技术学院

接口测试之webservice

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发...

4263

扫码关注云+社区

领取腾讯云代金券