asp.net架構

來源:互聯網
上載者:User
asp.net架構

 asp.net架構

asp時代已經過去,web2.0的時代已經來臨。asp.net2.0經過MS高度封裝,在vs.net下的開發已經完全是傻瓜式的了,但我不願只做個coding man。

    在以往的asp時代,當請求一個*.asp檔案的時候,這個請求首先被一個名為inetinfo.exe進程截獲,開啟工作管理員,發現inetinfo.exe其實就是www服務。Inetinfo.exe截獲之後,馬上把控制權交給一個名為asp.dll進程,asp.ddl就會解釋和執行這個asp頁面,之後把資料流返回給client瀏覽器,如果你是XP系統,就能在C:"WINDOWS"system32"inetsrv目錄在找到該檔案,此時的asp要通過解釋執行,每請求一次,都要從頭解釋,人世間最痛苦的事,莫過如此。

既然有更新的技術,當然要使用新技術了,老使用舊技術也不能說明你用情專一,^-^

在asp.net2.0時代,當client向IIS請求 *.aspx檔案時,請求也同上面一樣被inetinfo.exe進程截獲,inetinfo.exe判斷檔案的尾碼之後,將這個請求轉交給aspnet_isapi.dll,(你可以在C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727目錄下找到該檔案),而aspnet_isapi.dll則會通過一個名為HttpPipeLine的管道,將這個請求發送給aspnet_wp.exe進程,(你可以在C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727目錄下找到該檔案,同時在工作管理員中也可以找到),一旦http請求進入aspnet_wp.exe進程後,asp.net framework就會通過httpRuntime來處理這個請求,然後把資料流發送回client端的瀏覽器。

     只喜歡和美女聊天的男人,決不是好男人。我們可以把HttpRuntime看成一位美女。既然她是美女,那當然要研究研究了。HttpRuntime到底是什麼呢?她不是一個實體,而是執行asp.net的一個抽象的大環境,記住這點很重要。我們來具體看看HttpRuntime到底是怎樣執行的?當http請求進入httpRuntime之後,這個請求會被繼續被送入到一個名為HttpApplication Factory的工廠中,工廠為這個http請求產生一個HttpApplication的執行個體,隨後這個執行個體被送到HttpModule容器中,隨後http請求繼續送到HttpHandler Factory工廠,

這個工廠也會產生一個HttpHandler的執行個體,這個執行個體的processRequire方法處理傳進來的請求,然後把處理好的結果和控制權交給HttpModule容器,HttpModule容器再把從HttpHandler執行個體處理好的資料流回傳到clinet端的瀏覽器,這樣一個Http請求的完美生命週期就結束了。

記住,真正處理Http請求的地方在HttpHandler執行個體的processRequire方法中,而到最後回傳資料流到client端的地方是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.