ASP.NET 應用程式生命週期向來被視為難懂的硬骨頭,本系列以「故事化」敘事降低理解門檻,帶你輕鬆掌握核心物件與流程。
故事開始:一個請求的旅程
當你點擊博客園文章連結,請求先被 IIS 接收。IIS 判斷是 .aspx,遂將請求交給 ASP.NET,並說:「處理完把 HTML 給我,我要回給使用者。」
ASP.NET 內部四大步驟
- 建立 Context(箱子):裝載請求處理所需的所有物件。
- 建立 Request 物件:封裝 IIS 傳來的所有資訊(表單、標頭、查詢字串等)。
- 建立 Response 物件:準備裝載即將產生的 HTML 內容,同樣放入 Context 箱子。
- 僱用 HttpApplication(專案經理):將 Context 交給它,指示:「把 Response 填好,細節你掂量。」
專案經理招募兩位苦力
- P_Module (HttpModule):能查看 Context 內容並做決定(安全、Session 等),實作
IHttpModule,在 Init 註冊管線事件。
- P_Handler (HttpHandler):真正處理請求、產生 HTML 的核心工作者。透過 HttpHandler Factory(獵頭)依副檔名找到對應 Handler(.aspx 編譯後實作
IHttpHandler)。
處理流程
- HttpModule 先作業(可能修改 Context)。
- HttpHandler 接手,根據 Request 施展「乾坤大挪移」(
ProcessRequest),產出 HTML 塞入 Response。
- HttpApplication 拿走 Response 回給 IIS,IIS 回傳瀏覽器,你看到文章。
故事遺漏的細節(後續篇章將補充)
- IIS 與 ASP.NET 交互非單純傳遞,中間有複雜協議轉換。
- HttpModule 能做的事遠不止安全與 Session。
- HttpHandler 的
ProcessRequest 內部邏輯(頁面生命週期)。

這篇奠定基礎概念,後續將層層深入,歡迎拋磚引玉!