ASP.NET Web API 2 消息處理管道

Ø  前言web

ASP.NET 的應用程序都會有本身的消息處理管道和生命週期,好比:ASP.NET Web 應用程序(Web Form)、ASP.NET MVC,還有本文將討論的 ASP.NET Web API 2。消息處理管道是一個複雜的過程,致使於不少人對這塊半知半解,包括本人也是。本文將從如下幾點展開研究,不對之處,歡迎指出。api

 

1.   爲何要了解消息處理管道或生命週期服務器

咱們知道,Web 應用程序都是發佈到 IIS(服務器)上,提供給其餘程序訪問。而每一個請求進來,咱們的 IIS 幫咱們作了哪些事情呢?這就涉及到消息處理管道了,每一個一個請求進來,都會執行相同的生命週期。而有些消息管道是咱們能夠寫程序干預的,好比:DelegatingHandler(委託處理程序)、和一系列的過濾器等等。這樣咱們就能夠編寫本身的處理程序,來完成咱們制定的個性化需求了。asp.net

 

2.   首先, 咱們來看下 ASP.NET Web API 2 的生命週期(來至於:https://www.asp.net/media/4071077/aspnet-web-api-poster.pdfide

clip_image002[5]

1)   首先程序初始化時,自動建立了一個 HttpServer 對象,該對象用於配置整個Web 環境所需的配置,例如:委託處理程序、路由配置、過濾器、媒體類型格式化程序等等,該類繼承於 System.Net.Http.DelegatingHandler。也屬於委託處理程序中的一種,是比較特殊的處理程序。post

1.   委託處理程序:它是每一個請求必須經歷的消息通道,能夠指定多個消息處理程序,從而造成消息處理程序委託鏈,當請求到來時最早執行消息處理程序。委託處理程序繼承於 System.Net.Http.HttpMessageHandler 類,該類是消息處理程序的基類spa

2.   路由配置:用於配置 HTTP 請求的路由格式,由 System.Web.Http.Dispatcher.HttpRoutingDispatcher 處理程序來找到請求的 Controller Action,一樣繼承於 System.Net.Http.HttpMessageHandler .net

3.   過濾器:也是咱們會常常接觸的,大體分爲四種類型:身份驗證過濾器、受權過濾器、動做過濾器、以及異常過濾器。orm

4.   媒體類型格式化程序:用於配置請求和響應媒體類型格式的相關設置,例如:JsonXML 格式的設置等。對象

 

待完善

相關文章
相關標籤/搜索