本篇文章介紹ASP.NET Core里,用來(lái)處理HTTP封包的Middleware,為自己留個(gè)紀(jì)錄也希望能幫助到有需要的開(kāi)發(fā)人員。

結(jié)構(gòu)

  • 在ASP.NET Core里,每個(gè)從「瀏覽器傳入」的HTTP Request封包,會(huì)被系統(tǒng)封裝為「HttpRequest對(duì)象」,并且配置默認(rèn)的HttpResponse對(duì)象、Session對(duì)象、ClaimsPrincipal對(duì)象...等等物件。接著將這些對(duì)象,封裝成為一個(gè)「HttpContext對(duì)象」,用來(lái)提供ASP.NET Core后續(xù)使用。

  • ASP.NET Core在收到HttpContext之后,會(huì)把它交給一個(gè)「Pipeline」去處理。這個(gè)Pipeline里面配置很多「Middleware」。系統(tǒng)會(huì)將HttpContext,依序傳遞給Pipeline里的Middleware去處理。每個(gè)Middleware會(huì)依照自己內(nèi)部的程序邏輯,來(lái)運(yùn)算處理HttpContext,并且變更HttpContext所封裝的對(duì)象內(nèi)容。