本系列目錄:ASP.NET MVC4入門到精通系列目錄彙總html
ASP.NET MVC的請求管道和ASP.NET請求管道基本上如出一轍,若是你對ASP.NET請求管道十分熟悉的話,你只要關注一下不一樣點。看懂下面兩張圖,你就基本上明瞭了,這兩張圖是從鄒華棟博客上面取的。(說明:我不是給傳智帶鹽的,這圖確實畫得通俗易懂)不明白的地方,用reflector工具查看MVC的源碼,沒其它的。.NET框架的源碼裏面幾乎涉獵了各類設計模式。這一節的內容,我也不知道怎麼說,都在圖裏面了,看圖比直接用文字說明要明瞭得多,只是這些東西仍是比較抽象的,若是你時間充裕,建議看下MVC的源碼。怎麼看?就找MVC框架引用到的那幾個dll,用反編譯工具看下就能夠了,若是要深刻,直接去官網下載源碼看,反覆看幾遍,你就豁然開朗了,不過須要必定的C#基礎。設計模式
MVC19個管道事件:瀏覽器
/* 1.BeginRequest 開始處理請求 2.AuthenticateRequest 受權驗證請求,獲取用戶受權信息 3.PostAuthenticateRequest 獲取成功 4.AunthorizeRequest 受權,通常來檢查用戶是否得到權限 5.PostAuthorizeRequest 得到受權 6.ResolveRequestCache 獲取頁面緩存結果(若是沒有則執行) 7.PostResolveRequestCache 已獲取緩存 8.PostMapRequestHandler 建立頁面對象 9.AcquireRequestState 獲取Session -- 先判斷當前頁面對象是否實現了IRequiresSessionState接口,若是實現了,則從瀏覽器發來的請求報文頭中得到SessionId,併到服務器的 Session池中得到對應的Session對象,最後賦值給 HttpContext的Session屬性。 10.PostAcquireRequestState 得到Session 11.PreRequestHandlerExecute 準備執行頁面對象 ×執行頁面對象的ProcessRequest方法(1.ashx,1.aspx),若是請求的是1.aspx,則會運行頁面生命週期 12.PostRequestHandlerExecute 執行完頁面對象了 13.ReleaseRequestState 釋放請求狀態 14.PostReleaseRequestState 已釋放請求狀態 15.UpdateReuqestCache 更新緩存 16.PostUpdateRequestCache 已更新緩存 17.LogRequest 日誌記錄 18.PostLogRequest 已完成日誌 19.EndRequest 完成 */
這節純理論的東西,只能本身慢慢悟。緩存