日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

一点一点学ASP.NET之基础概念——HTTP运行期与页面执行模型

發(fā)布時間:2023/12/15 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一点一点学ASP.NET之基础概念——HTTP运行期与页面执行模型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

轉(zhuǎn)自:http://www.cnblogs.com/stwyhm/archive/2006/08/08/470972.aspx

HTTP運行期

HTTP運行期處理客戶端應(yīng)用程序(例如Web瀏覽器)進入的一個Web請求,通過處理它的應(yīng)用程序的適當組件路由請求,然后產(chǎn)生響應(yīng)并發(fā)回提出請求的客戶端應(yīng)用程序。

進入的HTTP Web請求最先由IIS Web服務(wù)器接收到,它在此請求基于ASP.NET已注冊處理的擴展名傳送到ASP.NET ISAPI上。

HTTP運行期首先創(chuàng)建一個HttpContext對象的實例,它包含了當前正在處理的請求信息,接著創(chuàng)建在處理邏輯中涉及到的所有其他組件都可以使用的上下文對象。HttpContext實例提供了對請求對象(HttpRequest類的實例)和響應(yīng)對象(HttpResponse類的實例)的訪問。

HTTP運行期集成由稱為HTTP模塊(HTTP Module)的組件構(gòu)成的處理管線,用于執(zhí)行請求預(yù)處理動作(如:高速緩存的查詢和授權(quán))和后處理動作(如:更新調(diào)整緩存)。這些組件實現(xiàn)IHttpModule接口。在管線中,每個模塊處理不同的全局應(yīng)用層次和特定請求事件來執(zhí)行其邏輯。

HTTP運行期基于請求的URL還選擇一個HTTP處理程序(實現(xiàn)IHttpHandler接口的組件)或HTTP處理程序工廠(實現(xiàn)IHttpHandlerFactory接口的組件)來完成引入請求的實際處理過程。處理程序用HttpContext對象來收集請求信息、并寫出響應(yīng)的結(jié)果。


1ASP.NET Web 應(yīng)用程序中的請求處理過程

?

一個HTTP請求的處理過程

當一個HTTP請求被送入HttpRuntime之后,這個HTTP請求會繼續(xù)被送入到一個被稱為HttpApplicationFactory的容器中。而這個窗口會給出一個HttpApplication實例來處理傳遞進來的HTTP請求,而后這個HTTP請求會依次進入如下幾個容器中:

HttpModule ——> HttpHandler Factory ——> HttpHandler

當系統(tǒng)內(nèi)部的HttpHandlerProcessResquest的方法處理完畢之后,整個Http Request就被處理完成了,客戶端也就得到相應(yīng)的結(jié)果了。

?

一個完整的HTTP請求在ASP.NET Framework的處理過程如下:

HttpRequest ——> inetinfo.exe ——> ASPNET_ISAPI.dll ——> Http Pipeline ——> ASPNET_WP.exe ——> HttpRuntime ——> HttpApplication Factory? ——> HttpApplication? ——> HttpModule ——> HttpHandler Factory? ——> HttpHandler? ——> HttpHandler.ProcessRequest()

?

頁面執(zhí)行模型

頁面執(zhí)行模型由頁面HTTP處理程序工廠開始,它注冊HTTP運行期以為所有.aspx文件處理請求。頁面處理程序工廠負責創(chuàng)建一個Page對象的實例,這是將最終處理請求所生成響應(yīng)結(jié)果的HTTP處理程序。

首先頁面處理程序工廠嘗試在與請求的.aspx文件相關(guān)的.NET高速緩存內(nèi)查找以前編譯過的頁面類。當查找失敗時,就像第一次請求一樣,處理程序工廠將讀取和解析文件,并創(chuàng)建一棵解析樹(parse tree)。解析樹類似于控件樹,但是并不包含控件,解析樹包含稱為控件生成器(control builder)的對象實例。控件生成器包含了在解析過程期間收集的相關(guān)控件信息。然后通過Page指令中的Language attribute,用與頁面相關(guān)的語言把解析樹轉(zhuǎn)變?yōu)榇a。然后,頁面處理程序工廠調(diào)用適當?shù)木幾g程序,動態(tài)地編譯從Page中得到的類,頁面處理程序工廠還將新建的類放置到ASP.NET調(diào)整緩存中,并且把高速緩存記錄和文件相關(guān)性關(guān)聯(lián)起來。文件相關(guān)性監(jiān)視.aspx文件做出的變化,并保證任何變化都自動地使高速緩存記錄無效,在下次請求時這些記錄將再次解析修改過的文件。


2:頁面如何處理請求

轉(zhuǎn)載于:https://www.cnblogs.com/JustDI/archive/2007/07/02/802562.html

總結(jié)

以上是生活随笔為你收集整理的一点一点学ASP.NET之基础概念——HTTP运行期与页面执行模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。