1. 程式人生 > >ASP.NET頁面請求處理流程

ASP.NET頁面請求處理流程

 
   那麼上面這張圖讓我們能夠更清楚地看到一個http請求是如何經過伺服器的處理的,同時通過這張圖我們也可以看出Request是掌管著所有客戶端輸入的。圖中為我們展示了 一個http請求有可能經過的四條路線。當你第一次訪問這個頁面時這個請求首先依次經過HttpModuls和HttpHandler的處理,而在HttpHandler的處理中伺服器會為你轉到你真正 要訪問的頁面,然後通過ASP Engine來找到這個頁面背後的類,並例項化為一個臨時物件,再此過程中會觸發一系列的事件,其中一部份的事件需要經過物件中的方法處理, 之後伺服器會將這個處理後頁面發移交給Response物件,然後由Response物件將這個頁面傳送到客戶端。這就是第一條路線,而當你在這個頁面上進行重新提交一些資訊, 並繼續向伺服器傳送請求時,因為你的伺服器之間的會話已經建立,對於你所在的那個臨時物件在伺服器中已經建立,所以不用再經過初始化頁面的工作,故這第二條路線是按 照HttpModuls,HttpHandler,然後直接與臨時物件互動,然後返回的。第三條路線與第二條不同的是在處理請求時如果涉及到需要呼叫ASP Cache,既ASP快取的,而臨時物件 回將直接從ASP快取提取資訊並返回.這第四條路線就是當你重新整理這個頁面的時候,伺服器接收到時發現這個請求先前已經處理過了,並將處理結果儲存到由一個預設的HttpModule管理的輸出快取中了,那麼我們就可以直接從這個快取提取資訊並返回,而無需再重新處理一遍了