首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 應用程式生命週期趣談(一):從 IIS 到 HttpApplication 的啟程

     編輯:關於ASP.NET

ASP.NET 應用程式生命週期向來被視為難懂的硬骨頭,本系列以「故事化」敘事降低理解門檻,帶你輕鬆掌握核心物件與流程。

故事開始:一個請求的旅程

當你點擊博客園文章連結,請求先被 IIS 接收。IIS 判斷是 .aspx,遂將請求交給 ASP.NET,並說:「處理完把 HTML 給我,我要回給使用者。」

ASP.NET 內部四大步驟

  1. 建立 Context(箱子):裝載請求處理所需的所有物件。
  2. 建立 Request 物件:封裝 IIS 傳來的所有資訊(表單、標頭、查詢字串等)。
  3. 建立 Response 物件:準備裝載即將產生的 HTML 內容,同樣放入 Context 箱子。
  4. 僱用 HttpApplication(專案經理):將 Context 交給它,指示:「把 Response 填好,細節你掂量。」

專案經理招募兩位苦力

  • P_Module (HttpModule):能查看 Context 內容並做決定(安全、Session 等),實作 IHttpModule,在 Init 註冊管線事件。
  • P_Handler (HttpHandler):真正處理請求、產生 HTML 的核心工作者。透過 HttpHandler Factory(獵頭)依副檔名找到對應 Handler(.aspx 編譯後實作 IHttpHandler)。

處理流程

  1. HttpModule 先作業(可能修改 Context)。
  2. HttpHandler 接手,根據 Request 施展「乾坤大挪移」(ProcessRequest),產出 HTML 塞入 Response。
  3. HttpApplication 拿走 Response 回給 IIS,IIS 回傳瀏覽器,你看到文章。

故事遺漏的細節(後續篇章將補充)

  • IIS 與 ASP.NET 交互非單純傳遞,中間有複雜協議轉換。
  • HttpModule 能做的事遠不止安全與 Session。
  • HttpHandler 的 ProcessRequest 內部邏輯(頁面生命週期)。

生命週期示意圖

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

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved