ASP.NET運行機制

來源:互聯網
上載者:User

1 Http請求

如,我們先來真正瞭解一下什麼是http請求,舉一個簡單的例子,你在瀏覽的一張網頁上點擊其中的一個超級連結”Microsoft程式員測試題”,如果這個連結到的地址是 http://www.frontfree.net/view/article_840.html ,那麼瀏覽器會立刻向www.frontfree.net 這個伺服器發送一條http請求.但是這個請求中不僅包括 http://www.frontfree.net/view/article_840.html字串,而且還包括 這個www.frontfree.net/article字串,這個資訊是你的超級連結的參考頁地址,或參考頁資訊,這個資訊其實很重要,這個可以用在我們後文中所述的對圖片盜鏈的判斷中。當然這也是在http2.0規範中被要求的,其次還有一些其它資訊,比如你請求的主機名稱,經過的路由器,用戶端的一些資訊等等,所以一個http請求中包括相當多的資訊,並不像我們從表面上想到的那樣簡單.好了,現在我們已經知道了什麼是http請求.接下來就是時候講到ASP.NET的網路應用程式的運行機制了。

 

2 ASP.NET運行原理概述

 

如,當一個http請求發送過來並被IIS機收到之後,IIS首先通過你請求的頁面類型為其載入相應的dll檔案,然後在處理過程中將這條請求發送給能夠處理這條請求的模組,而在ASP.NET中這個模組就叫做HttpHandler,為什麼aspx這樣的檔案可以被伺服器處理,那是因為在伺服器端有預設的HttpHandler專門處理aspx檔案,IIS再將這條請求發送給能夠處理這條請求的模組之前,還需要經過一些HttpModule,這些都是系統預設的Modules,而且在這個http請求傳到HttpHandler之前要經過不同的HttpModuls的處理,這就像我們如果要乘坐國際航班飛抵異國他鄉的話,在你真正坐上飛機前,要經過購買機場建設費,辦理登記手續核實身份,進行行李打包託運,進行安全檢察,現在又要進行體溫等檢察一樣,需要經一系列的嚴格的手續。這樣做有什麼好處,一是為一些必須的過程,二是為了安全性,三是為了提高效率,四是為了我們能夠在更多的環節上進行控制,即增強了我們的控制能力。而上述的都是系統的,怎麼能說是我們的對http請求控制能力能,那麼我們是否可以建立自己的HttpModule和HttpHandler嗎?答案是肯定的。但我們先不要急於做事,讓我們再深入研究一下運行機制吧。

 

3 ASP.NET運行機制

 

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.