1. 程式人生 > 其它 >.NET Framework 和.NET Core 管道模型

.NET Framework 和.NET Core 管道模型

.NET Framework 管道模型

特點:管道模型是全家桶式, 不支援熱拔插。一次性整合在裡面。

請求進入ASP.NET 工作程序後,由程序建立HTTPWorkRequest物件,封裝此次請求的所有資訊,然後進入HttpRuntime 模組做進一步處理,HttpRuntime通過請求資訊建立HttpContext 上下文物件,此物件貫穿整個管道,直到響應結束。同時建立或從應用程式池裡初始化一個HttpApplication 物件,由此物件開始處理之前註冊的多個HttpMoudle 物件,之後呼叫HttpHanlderFactory 建立HttpHandler 物件,最終處理此次請求內容,生成響應並返回。

.NET Core 管道模型

  特點:支援熱拔插,靈活,所以效能更好

IHttpMoudle 和IHttpHandler 已經不存在,取而代之的是中介軟體(middleware), Server接到請求後直接向後傳遞,依次經過每個中介軟體(middleware)處理,然後由最後一箇中間件處理並生成響應內容後回傳,再反向依次經過每個中介軟體,直到Server傳送出去。中介軟體就像一層層濾網,過濾所有的請求和響應。

ASP.NET Core是一套全新的平臺,已經不再向前相容,設計追求元件化,追求高效能,沒有全家桶。那麼ASP.NET Core 是怎麼搭建請求管道的呢?預設情況,管道返回一個404.然後你也可以增加請求的處理,這就是之前的Handler,只包含業務處理環節,其他的都是中介軟體(middleware).

生命不息,奮鬥不止