ASP.NET WebAPI框架解析第一篇
ASP.NET WebAPI有两种寄宿模式,一种是WebHost,一种是SelfHost,为什么可以有两种模式的原因在于WebAPI有一个相对独立的消息处理管道,只要给这个消息管道传递一个封装好的对象,便可以得到处理好的结果。而怎么去封装这个对象,如何得到这个对象就不是WebAPI所关心的了。在WebHost模式下,这个对象是由IIS+ASP.NET框架共同完成的,在SelfHost模式下,可以是任何可以完成HTTP消息响应和接收的应用程序,比如Console、Winform、Windows Server等。宿主只需要完成HTTP消息的接受和响应,处理过程交给WebAPI即可。我们先来看下在WebHost模式下一个HTTP报文的大概处理过程,首先有个总体把握,然后再按需去学习是个不错的学习方法。#
首先客户端发出一个HTTP请求形成HTTP请求报文被IIS捕捉,IIS解析原始报文并作出相应处理,比如,如果请求的是一些静态资源(*.CSS、*.Html……),此时IIS可以直接返回相应资源给客户端,当然如果需要托管代码处理也是可以的,配置Web.config即可。如果IIS不处理,或者需要进一步处理,则交由ASP.NET托管代码处理,在这个处理过程中,可以自定义一些HttpModule,并在Web.confg的System.WebServer(IIS模式在集成模式下才有效)注册,怎么自定义后面会说明。最后由IIS生成HTTP响应报文给客户端,在WebHost模式下,一次HTTP请求的大概过程就这样结束了。#
作者: 白烟染黑墨
出处:https://www.cnblogs.com/hkfyf/p/12493180.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
分类:
ASP.NET WEBAPI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端