日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.Net 管道模型 VS Asp.Net Core 管道 总结

發布時間:2023/12/4 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.Net 管道模型 VS Asp.Net Core 管道 总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 管道模型?

1 Asp.Net Web Form管道

請求進入Asp.Net工作進程后,由進程創建HttpWorkRequest對象,封裝此次請求有關的所有信息,然后進入HttpRuntime類進行進一步處理。HttpRuntime通過請求信息創建HttpContext上下文對象,此對象將貫穿整個管道,直到響應結束。同時創建或從應用程序池里初始化一個HttpApplication對象,由此對象開始處理之前注冊的多個HttpModule。之后調用HandlerFactory創建Handler處理程序,最終處理此次請求內容,生成響應返回。

?

?

2 ASP.Net? MVC? 管道

?

?

?

3、Asp.Net Core管道

IHttpModule和IHttpHandler不復存在,取而代之的是一個個中間件(Middleware)。

Server將接收到的請求直接向后傳遞,依次經過每一個中間件進行處理,然后由最后一個中間件處理并生成響應內容后回傳,再反向依次經過每個中間件,直到由Server發送出去。

中間件就像一層一層的“濾網”,過濾所有的請求和相應。這一設計非常適用于“請求-響應”這樣的場景——消息從管道頭流入最后反向流出。

?4 .net Core Middleware

?Middleware支持Run、Use和Map三種方法進行注冊,下面將展示每一種方法的使用方式。

  • Run的這種用法表示注冊的此中間件為管道內的最后一個中間件,由它處理完請求后直接返回。

  • 通過Use方法注冊的中間件,如果不調用next方法,效果等同于Run方法。當調用next方法后,此中間件處理完后將請求傳遞下去,由后續的中間件繼續處理。

  • Map方法主要通過請求路徑和其他自定義條件過濾來指定注冊的中間件,看起來更像一個路由。

Asp.Net Core框架內置了幾個中間件

4 Asp.net HttpModule?

用處:

  • 權限認證和授權:每個請求都經過Module,所以做權限認證很好

  • URL 轉發

  • 發爬蟲

ASP.NET 請求處理過程是基于管道模型的,這個管道模型是由多個HttpModule和HttpHandler組成,ASP.NET 把http請求依次傳遞給管道中各個HttpModule,最終被HttpHandler處理,處理完成后,再次經過管道中的HTTP模塊,把結果返回給客戶端。我們可以在每個HttpModule中都可以干預請求的處理過程。

注意:在http請求的處理過程中,只能調用一個HttpHandler,但可以調用多個HttpModule。

?HttpModule生命周期示意圖

?5?Asp.net??HttpHandler

?HttpHandler是asp.net真正處理Http請求的地方。在這個HttpHandler容器中,ASP.NET Framework才真正地對客戶端請求的服務器頁面做出編譯和執行,并將處理過后的信息附加在HTTP請求信息流中再次返回到HttpModule中。

當一個HTTP請求經過HttpModule容器傳遞到HttpHandler容器中時,ASP.NET Framework會調用HttpHandler的ProcessRequest成員方法來對這個HTTP請求進行真正的處理。以一個ASPX頁面為例,正是在這里一個ASPX頁面才被系統處理解析,并將處理完成的結果繼續經由HttpModule傳遞下去,直至到達客戶端。

對于ASPX頁面,ASP.NET Framework在默認情況下是交給System.Web.UI.PageHandlerFactory這個HttpHandlerFactory來處理的。所謂一個HttpHandlerFactory,是指當一個HTTP請求到達這個HttpHandlerFactory時,HttpHandlerFactory會提供出一個HttpHandler容器,交由這個HttpHandler容器來處理這個HTTP請求。

一個HTTP請求都是最終交給一個HttpHandler容器中的ProcessRequest方法來處理的。

?可以在一個.ashx文件中實現IHttpHandler

總結

以上是生活随笔為你收集整理的ASP.Net 管道模型 VS Asp.Net Core 管道 总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。