ASP.NET WebAPI框架解析第一篇
ASP.NET WebAPI有兩種寄宿模式,一種是WebHost,一種是SelfHost,為什么可以有兩種模式的原因在于WebAPI有一個(gè)相對(duì)獨(dú)立的消息處理管道,只要給這個(gè)消息管道傳遞一個(gè)封裝好的對(duì)象,便可以得到處理好的結(jié)果。而怎么去封裝這個(gè)對(duì)象,如何得到這個(gè)對(duì)象就不是WebAPI所關(guān)心的了。在WebHost模式下,這個(gè)對(duì)象是由IIS+ASP.NET框架共同完成的,在SelfHost模式下,可以是任何可以完成HTTP消息響應(yīng)和接收的應(yīng)用程序,比如Console、Winform、Windows Server等。宿主只需要完成HTTP消息的接受和響應(yīng),處理過程交給WebAPI即可。我們先來看下在WebHost模式下一個(gè)HTTP報(bào)文的大概處理過程,首先有個(gè)總體把握,然后再按需去學(xué)習(xí)是個(gè)不錯(cuò)的學(xué)習(xí)方法。
首先客戶端發(fā)出一個(gè)HTTP請(qǐng)求形成HTTP請(qǐng)求報(bào)文被IIS捕捉,IIS解析原始報(bào)文并作出相應(yīng)處理,比如,如果請(qǐng)求的是一些靜態(tài)資源(*.CSS、*.Html……),此時(shí)IIS可以直接返回相應(yīng)資源給客戶端,當(dāng)然如果需要托管代碼處理也是可以的,配置Web.config即可。如果IIS不處理,或者需要進(jìn)一步處理,則交由ASP.NET托管代碼處理,在這個(gè)處理過程中,可以自定義一些HttpModule,并在Web.confg的System.WebServer(IIS模式在集成模式下才有效)注冊(cè),怎么自定義后面會(huì)說明。最后由IIS生成HTTP響應(yīng)報(bào)文給客戶端,在WebHost模式下,一次HTTP請(qǐng)求的大概過程就這樣結(jié)束了。
知其然,而后知其所以然。


浙公網(wǎng)安備 33010602011771號(hào)