天天看點

asp .net 中 web ,ViewState 工作原理

web工作原理

用戶端IE 發送請求(http)

伺服器(80端口)

被伺服器的IIS(WEB伺服器)接收,[WEB伺服器驗證請求的合法性,如果不合法,直接中斷請求]

檢查伺服器IIS下的對照表(檢查用戶端請求的檔案的擴充名)

如果用戶端請求的檔案的擴充名是.aspx

IIS就會把這個請求轉交給 ASPNET_ISAPI.DLL

ASPNET_ISAPI.DLL會把請求轉交給 ASPNET_WP.EXE

以下是ASPNET_WP.EXE 的處理流程(工作流程)

1、加載運作環境(.NER FRAMEWORK)

2、加載HttpRunTime 公共類

 HttpRunTime 初始化時會調用 HttpApplicationFActory(工廠類),由工廠類産生一個

 HtppApplication的執行個體

3、由 HttpRunTime類把産生的 HttpApplication 執行個體傳遞給HttpModule(1)、HttpModule(2) ....

4、最後請求會到達 HttpHandler 類(這個類是伺服器端處理用戶端請求的中心)

5、HttpHandler 處理完請求後會把結果(Html流)傳回給 HttpModule

6、然後 HttpModule 會把結果傳回給 ASPNET_ISAPI.DLL

7、ASPNENT_ISAPI.DLL 把處理結果傳回給IIS

8、IIS 把處理結果(Html流)響應給用戶端IE(通過80端口)

9、由用戶端IE 解析伺服器傳回的結果(Html流),顯示到IE頁面

10、客戶看到結果(可以化頁面)

                                   2. ViewState

ViewState 它是由 ASP.NET 頁面架構管理的一個隐藏的窗體字段。當 ASP.NET 執行某個頁面時,該頁面上的 ViewState 值和所有控件将被收集并格式化成一個編碼字元串,然後被配置設定給隐藏窗體字段的值屬性(即 <input type=hidden>)。由于隐藏窗體字段是發送到用戶端的頁面的一部分,是以 ViewState 值被臨時存儲在用戶端的浏覽器中。如果用戶端選擇将該頁面回傳給伺服器,則 ViewState 字元串也将被回傳。回傳後,ASP.NET 頁面架構将解析 ViewState 字元串,并為該頁面和各個控件填充 ViewState 屬性。然後,控件再使用 ViewState 資料将自己重新恢複為以前的狀态。

繼續閱讀