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 資料将自己重新恢複為以前的狀态。