服務(wù)器的監(jiān)聽(IIS6.0+版本)

  1. 當請求到達服務(wù)器時,請求最終會到達TCPIP.SYS驅(qū)動程序,TCPIP.SYS將請求轉(zhuǎn)發(fā)給HTTP.SYS網(wǎng)絡(luò)驅(qū)動程序的請求隊列中(可以理解為專門處理http請求的進程),當然在處理請求的過程中,HTTP.SYS進程會維護一個配置表用緩存請求的url和和應(yīng)用程序池對應(yīng)的關(guān)系。

  2. 當一個http請求被捕獲到,HTTP.SYS會讀取配置表,如果對應(yīng)的應(yīng)用程序沒有啟動,則HTTP.SYS會啟動IIS相對應(yīng)的應(yīng)用程序。具體運行機制可以理解成為:

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

HTTP.SYS

HTTP.SYS是TCP之上的一個網(wǎng)絡(luò)驅(qū)動程序,因此,HTTP.SYS不再屬于IIS(這里說的IIS都是IIS6.0+版本,下文如果不特殊指明,默認為IIS6.0+版本),它已經(jīng)從IIS中獨立了出來。 Http.Sys獨立有以下幾個優(yōu)點:

  • 可靠性: HTTP.SYS運行在內(nèi)核模式下,作為操作系統(tǒng)的驅(qū)動程序運行。因此,HTTP.SYS不會受到用戶代碼的影響,它始終處于穩(wěn)定運行狀態(tài),對用戶的http請求進行監(jiān)聽,并及時作出反應(yīng)。

  • 高性能: 從用戶發(fā)送http請求到系統(tǒng)返回響應(yīng)結(jié)果的這一過程都是HTTP.SYS在內(nèi)核模式下完成的。不需要在內(nèi)核模式和用戶模式下進行切換,這樣就極大地節(jié)省了系統(tǒng)資源,提高了請求的響應(yīng)速度。

IIS處理

W3SVC

  1. W3SVC服務(wù)是一個獨立運行的程序,寄宿在svchost.exe進程中,負責用戶的參數(shù)監(jiān)視和重新啟動應(yīng)用池的工作。 當一個請求進入HTTP.SYS的隊列中,會通知W3SVC服務(wù)根據(jù)IIS中的配置去創(chuàng)建對應(yīng)的應(yīng)用進程,進行處理。

W3WP.exe

  1. 當HTTP.SYS把請求傳遞給IIS時候,W3SVC會啟動對應(yīng)的應(yīng)用程序池

  2. 當用戶請求的是靜態(tài)文件,如:HTML和圖片等,IIS會直接讀取文件內(nèi)容,轉(zhuǎn)成二進制文件流,返回給HTTP.SYS。

  3. 當請求非靜態(tài)文件,如:.aspx。

  • 3-1. w3wp.exe會根據(jù)IIS中ISAPI擴展讀取對應(yīng)的處理的Dll,用asp.net舉例:當用戶訪問的網(wǎng)站是asp.net平臺,則 類型是.cshtml和.aspx文件類型。根據(jù)配置w3wp.exe會加載aspnet_isapi.dll(簡稱是ISAPI).

IIS中應(yīng)用程序的映射:

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓學習是年輕人改變自己的最好方式