1.用戶向服務器的某ip端口發送請求,此端口通過Http.sys來管理,請求報文被Http.sys接收,Http.sys在注冊表中找能處理這個請求類型的應用程序,最終找到IIS,請求被提交到IIS服務器處理,IIS判斷請求的類型。
如果請求的是靜態文件,那么IIS會直接處理,在本地找到請求的靜態文件,然后發送給瀏覽器。
如果是動態文件,如aspx或者ashx等動態文件,IIS就會去它的映射表里面去找,實現它接口的那個擴展程序可以處理這樣的動態文件,然后IIS發現有個叫做aspnet_isapi的一個擴展程序可以處理處理像.aspx和.ashx這樣后綴名的文件,那么IIS則把請求交給aspnet_isapi來處理。
2.aspnet_isapi將啟動CLR(公共語言運行時),CLR負責啟動asp.net框架的域,然后將請求交給asp.net框架來處理,框架里面有個一HttPRuntime類的對象,拿到用戶的請求后,它負責將請求封裝成HttpContext對象,調用application對象的ProcessRequest方法(HttpContext對象作為參數)處理請求,最后處理完成后,返回給IIS,IIS再返回給瀏覽器,瀏覽器解析渲染呈現給用戶。
Http.sys是一個位于Win2003和WinXP SP2中的操作系統核心組件,能夠讓任何應用程序通過它提供的接口,以http協議進行信息通訊。
Http.sys的好處:1. 緩存 - 靜態的內容現在被緩存于內核模式下,這使服務響應速度更快2. 記錄 (Log)-IIS的log功能更快且標準化了3. 帶寬控制 - greater scalability control and throttling4. 可靠性 - 所有的服務請求會在Http.sys里暫存入隊列,而不是由服務程序本身來處理,這樣,即使服務程序重啟,尚未被處理的請求也不會丟失了5. IP端口重用 - 現在,只要是通過Http.sys管理的端口(基本包括了那些著名的端口,比如80),都可以同時允許多個程序同時監聽了。
新聞熱點
疑難解答