希望給你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

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