各个版本的IIS之间的区别 IIS1 ~ IIS6
IIS 4之前
,所有的操作都是基于進程內執行(in-porcess execution)。使用ISAPI和C語言編寫DLL,然后被加載到主要的IIS WEB服務器進程(inetinofo.exe)并在這個進程中運行。也就是把這個進程當成宿主,在這個宿主內部運行。這個時候只能用比較低級的語言,例如C語言進行編程,而且更新等都會有很多問題,如果要更新的話,必須要把服務器停止才能更新,這是一個非常麻煩的事情。
?
ISAPI是為IIS 1開發的,用來在WindowsNT中代替UNIX Web服務器的公共網關接口(CGI)。CGI使用一種進程外(out-of-process)執行模式。而IIS是進程內執行模式。每個CGI都是一個獨立的進程,每一個的請求CGI都是以獨立進程的方式來處理請求然后關閉請求,就算同一個進程請求的是同一個進程程序,他都是開多個CGI進程,每個用戶每個請求他都誰打開一個新的CGI進程,這就大大浪費了性能,服務器的內存吃不消。而進程內的模式(IIS之前),inetinfo.exe就會控制緩存,如果同樣的請求進來的話,就會使用之前緩存的進程,性能得到了提升。
然后IIS進程內執行的缺陷也很明顯,工作不正常的ASP應用程序可能會關閉整個服務器(inetinfo.exe),雖然提高了WEB服務的性能,但是降低了可靠性。如果一個網站出現了異常,就要把整個服務器停掉,導致了服務器上其他的網站也要停掉。但是CGI程序則沒有這樣的可靠性的問題。
?
IIS 4
IIS 4是第一個在內部結構上發生重大變化的IIS版本。
Web應用程序的運行方式:
——進程隔離(Process Isolation)。
——保留ISAPI和ASP的性能優先,同時提供CGI的穩定性。
IIS配置信息的存儲方式:左邊是IIS4之前的運行方式;右邊是IIS4新的進程隔離模式(每個黃色框代表一個進程)
進程隔離模式的優點:
——崩潰的進程外應用程序對在服務器上運行的其他應用程序沒有影響。
——進程外應用程序可以在不依賴于服務器上的其他應用程序的情況下停止和重新啟動,不會影響其他應用程序,簡化了IIS上的應用程序的維護工作。
——可以將進程外應用程序配置為在出現故障之后自動重新啟動。
進程隔離的缺點:
——進程外應用程序的運行速度可能比進程內應用程序慢很多。
——進程外應用程序不能使用內置的IIS管理對象來訪問IIS配置數據庫屬性。
——進程外應用程序占用比進程內應用程序更多的內存資源。
?
IIS 5
IIS4的進程外應用程序不能與在同一臺計算機上的其他任何應用程序通信。
由于IIS4的局限性,IIS5提供了三個不同級別的應用程序保護:
——低(IIS進程)與IIS的版本1~3自出的單一結構一樣,作為WEB服務進程(inetinfo.exe)的一部分在進程內運行。
——中(共用的)作為一個單獨的緩沖池應用程序在inetinfo.exe進程外運行,也就是說,他作為名為dllhost.exe的新COM+宿主進程內部運行的幾個應用程序之一。
——高(獨立的)在自己的隔離dllhost.exe進程中運行(也就是進程外模式)。
dllhost.exe進程不僅是運行一個應用程序,是運行多個應用程序共享的進程。所有在dllhost.exe進程內部的應用程序可以互相訪問,這樣就解決了進程之間不能互相通信的問題。
?
這也就繼承了IIS4的進程外的優點,“獨立進程”中某一個進程壞了的話,不會影響到其他應用程序;但是共享的“緩沖進程”中,如果有一個進程壞了,其他進程也需要一起重新啟動,但是IIS的進程(inetinfo.exe)還回好的。
設置為低:進程內部運行程序或網站,如果應用程序壞了,整個WEB服務器都會壞掉。
設置為中:在獨立的dllhost里運行程序或網站(可以運行多個應用程序或網站),但是一個壞了,其他也都會壞掉。默認為中。
設置為高:獨立的dllhost里運行,只運行一個應用程序或網站;如果應用程序壞了,只是dllhost壞掉。
?
IIS 6
IIS6和IIS5之間的區別:
——HTTP請求的處理已經從inetinfo.exe進程直接移動到了Windows內核中,以便獲得更高的性能,IIS6使用在Windows Server 2003。
——支持兩種新的應用程序隔離模型:
?????? 1)“工作進程隔離模型”:全新的模型,它將用戶開發的所有應用程序代碼與核心IIS服務完全隔離。
?????? 2)IIS 5“隔離模型”:模仿IIS5的共享進程模型,為IIS 5設計的早期應用程序向后兼容。
——多個應用程序池的支持,可以單獨配置每一個池;IIS5中只有一個,統一來管理。
——重新改造了WWW服務,包括了一個系的配置和進程管理部分,名為Web管理服務(WAS)。
——其他增強的特性:處理器相似性、運行狀況見識、Web園、請求式啟動、空閑超時、快速故障保護、工作進程回收、XML配置數據庫等。
?
內核模式HTTP偵聽程序(http.sys),這是Windows內核里的一個驅動程序。
以前版本的IIS的結構是圍繞核心inetinfo.exe進程建立的:
Windwos上有內核模式和用戶模式:內核模式是WIndows內部的代碼,用戶沒有辦法改變。內核模式的優先度最高,在所有內核模式處理完后,才會交給用戶模式進行處理。
IIS 6之前是用戶模式;II6之后是內核模式。內核模式更穩定,速度更快。內核模式有自己的排隊處理,所有的請求都不會請求失敗,內核模式都會進行處理。
HTTP.SYS
——內核模式HTTP監聽程序。
——以設備驅動程序方式集成到系統底層。
——WIndow Server 2003的TCP/IP網絡子系統的一部分,從結構上說,它是TCP之上的一個網絡驅動程序。
——偵聽想要連接到IIS上運行的Web站點使用的IP地址和端口號的HTTP請求。
——不在屬于IIS。所有請求都是內核來完成。
——主要用途是提供IIS用來出來HTTP請求。
——還實現了其他幾項功能:
??????? 1)在內核模式中緩存HTTP請求。
????????2)管理TCP連接。
??????? 3)實現連接限制和超時。
????????4)管理帶寬節流。
??????? 5)處理WWW發布服務的基于文本的日志。
?
HTTP.SYS的好處:
——提高了IIS性能
——提高了IIS的可靠性
——提高了IIS的響應性
?
IIS6——工作進程隔離模式:使用Web管理服務
?
IIS 6 —— IIS5隔離模式:不使用WEb管理服務
?
IIS6 應用程序隔離模式的對應進程比較:
總結
以上是生活随笔為你收集整理的各个版本的IIS之间的区别 IIS1 ~ IIS6的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用linux的MTD tests su
- 下一篇: 对灰色按钮克星的屏蔽