OWIN基础
OWIN是啥?
OWIN是.NET web服务器和web应用程序间的抽象标准。
标准化了一个web Application 完整的生命周期.所以,基于OWIN,可以剥离Web Application对IIS的依赖
借此,可以对整个ASP.NET 生命周期有一个完整的认识,以及学会在何处添加切入点.
OWIN 层次 以及 流程
大致Owin分为以下几个层:
- Server 这个是直接与客户端通信的HTTP服务器(比如IIS,Tomcat),然后使用OWIN处理请求.
服务器需要OWIN框架提供一个适配层去转化.微软的Katana就有把IIS上的HTTPContext转化为OwinContext的Adapter
- Web Framework 这个是web框架,(Web Api,NancyFX)等都是.定义上是一个自包含的OWIN顶部的用于推进Owin管线组件.
- Web Application 这个就是你的应用程序,依托在web 框架之上的,可以在OWIN下运行的.
- Middleware 这个就相当于Httphandler,管理管道之间的服务器和应用程序,检查、 路由,或为特定目的修改请求和响应消息。
常见的功能,比如身份验证,日志,文档.
- Host 宿主程序,负责应用程序初始化和启动工作,一些Server也是宿主,比如IIS.
OWIN pipeline process
英文教程
中文教程
WebApi
WebApi是啥?
Web Api 是微软提供的一套设计优雅的Rest Api 框架.我猜八成是微软也看system.web不爽好久了..所以重新设计一套管线.
流程
整个WebApi,其实也就两块核心,路由,动态内容返回.
当然,还可以利用HttpMessageHandler来设置诸如Gzip之类的.也可以添加Filter.
整个路由过程,就是从IIS得到请求开始,到进入Action结束.
内容返回,是从Action执行完毕返回的Object开始,根据Action返回值以及内容协商约定,动态返回HttpResponse返回具体结果结束.