轉自:http://topic.csdn.net/u/20091214/16/0efa4feb-c26c-4544-b512-45fde803497d.html?76771
aspx代碼
.ashx代碼
ASP.Net處理Http Request時,使用Pipeline(管道)方式,由各個HttpModule對請求進行處理,然後到達 HttpHandler,HttpHandler處理完之後,仍經過Pipeline中各個HttpModule的處理,最後將HTML發送到客戶端瀏覽 器中。
生命週期中涉及到幾個非常重要的對象:HttpHandler,HttpModule,IHttpHandlerFactory,他們的執行(順
序)大致的執行過程是這樣的:client端發送頁面請求,被IIS的某個進程截獲,它根據申請的頁
面後綴(.aspx)不同,調用不同的頁面處理程序(.asp->asp.dll;
.aspx->ISAPI.dll).而頁面處理程序在處理過程中,則要經歷HttpModule,HttpHandler的處理:前者HttpModule用於頁面處理前和處理後的一些事件的處理
,後者HttpHandler進行真正的頁面的處理
。
如
前所說,HttpModule會在頁面處理前和後對頁面進行處理,所以它不會影響真正的頁面請求。通常用在給每個頁面的頭部或者尾部添加一些信息(如版
權聲明)等.曾經見過一些免費的空間,我們的頁面上傳上去後,瀏覽的時候發現,在每個頁面的頭部和尾部多了很多小廣告....,如果理解了
HttpModule的原理,要做這個就不是很難了~