本篇文章介紹ASP.NET Core里,用來處理HTTP封包的Middleware,為自己留個紀錄也希望能幫助到有需要的開發(fā)人員。
結(jié)構(gòu)
在ASP.NET Core里,每個從「瀏覽器傳入」的HTTP Request封包,會被系統(tǒng)封裝為「HttpRequest對象」,并且配置默認的HttpResponse對象、Session對象、ClaimsPrincipal對象...等等物件。接著將這些對象,封裝成為一個「HttpContext對象」,用來提供ASP.NET Core后續(xù)使用。
ASP.NET Core在收到HttpContext之后,會把它交給一個「Pipeline」去處理。這個Pipeline里面配置很多「Middleware」。系統(tǒng)會將HttpContext,依序傳遞給Pipeline里的Middleware去處理。每個Middleware會依照自己內(nèi)部的程序邏輯,來運算處理HttpContext,并且變更HttpContext所封裝的對象內(nèi)容。