關於Net Core中處理Http請求的一些理解


上篇記錄了一下Net Core之所以跨平台的根本 -- Kestrel服務器

那么一個Http請求究竟是如何被處理的呢

 瀏覽器中輸入一個要訪問的地址 => 然后經過DNS解析 => 拿到IP + Port =>IIS將請求解析為HttpContext => 交給Net FrameWork  

   瀏覽器中輸入一個要訪問的地址 => 然后經過DNS解析 => 拿到IP + Port =>IIS/Apache/Ngix 轉發 => Kestrel 監聽端口 解析為HttpContext  =>請求轉發到代碼

在Net Core中 請求轉發到代碼之后  進入Program   Main方法之后  Net Core 控制台程序會啟動一個Host主機 具體配置項在 CreateHostBuilder 方法里 

 

 

 在CreateHostBuilder 方法里完成對 Startup類的初始化 

 

 

 Startup類中 一般會有 構造函數,Configuartion(框架調用的給依賴注入容器配置服務實例) 和 Configure(配置http請求過程 中斷middleware 全部請求都會被該中間件處理 以前的流程全部失效 相比於framework功能級的層面 現在是全部請求的處理過程的請求級層面)  

 

請求在configure一層一層逐個執行中間件  最后一層一層逐個返回  如下圖

 

總結起來就是 pay for what you use 而區別於之前的pay for all 

這也是Net Core http管道處理模型的精髓 

 

 

 

以上僅是本人個人體會與總結,如有錯誤之處,還望斧正

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM