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

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

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

萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

HTTP.SYS

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

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

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

IIS處理

W3SVC

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

W3WP.exe

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

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

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

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

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

萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

延伸閱讀

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