4.1ASP.NET Core請求過程「深入淺出ASP.NET Core系列」


希望給你3-5分鍾的碎片化學習,可能是坐地鐵、等公交,積少成多,水滴石穿,謝謝關注。

HTTP請求過程

這里展示整體的HTTP請求的過程,這里化繁為簡,保留了主干流程:

從瀏覽器輸入域名開始,這里忽略了建立TCP的3次握手,向服務器發起HTTPRequest請求,服務器接受到之后,會觸發服務器對網站的動態解析,然后把生成的網頁信息通過HTTPResponse返回給用戶,內部包含HTML的Body,Head等信息,最后就是瀏覽器對這些HTML信息進行內部引擎渲染的過程了。

ASP.NET Core請求過程

ASP.NET Core是整個HTTP請求的一個環節,這個環節都做了哪些工作呢?

如圖所示,整個請求流程更加細化,特別是ASP.NET Core Application進行了放大,內部包含很重要的兩個組建,一個是Kestrel,一個是管道,管道包含多個中間件,而中間件說白了就是一個委托集合,可以無限擴展。

ASP.NET Core Application

ASP.NET Core Applicaton進一步放大,可以了解到,Kestrel其實在這里並沒有做真正的核心處理,只是做一層封裝為HttpContext,並往下傳。真正處理請求的是管道,管道其實就是RequestDelegate,處理完成后封裝成HttpContext進行回傳,當然,HttpContext內含HttpRequest和HttpResponse。

管道周圍的封裝,比如WebHost,我們可以在mvc的Progrms.cs看到他的影子:

同樣我們在Startup.cs會看到管道的構建器,ApplicationBuilder

 

以上只是一個初略的描述,但是作為開發來說,有個初步印象就可以了,再細化下去,已經超過碎片化時間,先打住,如果要繼續深究,請關注我后面的專題內容。

 我是IT人張飛洪,入行10年有余,人不堪其憂,吾不改其樂,謝謝您關注


免責聲明!

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



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