一、什么是Web服務器
Web服務(wu)器(qi)指(zhi)的(de)是(shi)提(ti)(ti)供web功能的(de)服務(wu)器(qi),主(zhu)要就(jiu)是(shi)HTTP服務(wu)器(qi),包括圖片的(de)下載等系(xi)列和(he)(he)文本相關(guan)的(de)內容。Web服務(wu)器(qi)支持以(yi)HTP協議的(de)方式(shi)來訪間,當Web服務(wu)器(qi)接收到一(yi)(yi)(yi)個(ge)(ge)(ge)(ge)HTTP請求時,它同樣會以(yi)HTTP協議格式(shi)返回一(yi)(yi)(yi)個(ge)(ge)(ge)(ge)響(xiang)(xiang)(xiang)應,這個(ge)(ge)(ge)(ge)響(xiang)(xiang)(xiang)應可以(yi)是(shi)一(yi)(yi)(yi)個(ge)(ge)(ge)(ge)靜態的(de)HTML頁面(mian),也可以(yi)是(shi)過處理的(de)一(yi)(yi)(yi)個(ge)(ge)(ge)(ge)動態的(de)頁面(mian),還可以(yi)是(shi)音(yin)頻(pin)、視頻(pin)等信息。為了處理一(yi)(yi)(yi)個(ge)(ge)(ge)(ge)請求,Web服務(wu)器(qi)可以(yi)做出個(ge)(ge)(ge)(ge)響(xiang)(xiang)(xiang)應,并進行(xing)頁面(mian)跳轉,或者把動態響(xiang)(xiang)(xiang)應的(de)產(chan)生(sheng)委(wei)托給一(yi)(yi)(yi)些其他的(de)程(cheng)序,例(li)如CGI腳本、JSP、Servlet或者一(yi)(yi)(yi)些其他的(de)服務(wu)器(qi)端程(cheng)序。Web服務(wu)器(qi)一(yi)(yi)(yi)般(ban)都使用了一(yi)(yi)(yi)些特(te)有(you)的(de)機(ji)制(zhi)(例(li)如容錯機(ji)制(zhi))來保(bao)證Web服務(wu)器(qi)有(you)較好(hao)的(de)擴展性(xing)和(he)(he)不間斷地提(ti)(ti)供服務(wu)。常見的(de)Web服務(wu)器(qi)有(you)IIS和(he)(he)?Apache。
二、什么是應用服務器
應(ying)用(yong)程(cheng)(cheng)序服務(wu)(wu)器是為應(ying)用(yong)程(cheng)(cheng)序提供業務(wu)(wu)邏輯的代碼。它是基(ji)于組(zu)件的,位于以服務(wu)(wu)器為中心的架構的中間(jian)層。
這個(ge)架構主要基于Web。中間(jian)層(ceng)是(shi)業務(wu)邏輯所(suo)在的(de)應用服務(wu)器(qi)。而第(di)三層(ceng),則是(shi)事務(wu)服務(wu)器(qi)的(de)數據庫。應用程序服務(wu)器(qi)充當的(de)是(shi)用戶和(he)數據庫之(zhi)間(jian)的(de)交互。
應(ying)用服務器通(tong)過各(ge)種協(xie)議把商業(ye)(ye)邏輯(ji)曝露給客(ke)戶(hu)端的(de)程序。它還(huan)可以包括計算(suan)機、web服務器或其(qi)他應(ying)用服務器上的(de)圖形(xing)用戶(hu)界面。業(ye)(ye)務邏輯(ji)通(tong)過組件(jian)API公(gong)開。它還(huan)管(guan)理(li)自己的(de)資源(yuan)以及(ji)執(zhi)行安全(quan)性、事(shi)務處理(li)、資源(yuan)池以及(ji)消(xiao)息傳遞。
對(dui)于高(gao)端需求,應(ying)(ying)用(yong)(yong)服務器(qi)往往具(ju)有高(gao)可用(yong)(yong)性監視、集群化、負載平衡、集成(cheng)冗余和高(gao)性能分布(bu)式應(ying)(ying)用(yong)(yong)服務,以(yi)及對(dui)復(fu)雜的數據庫(ku)訪問的支持。
在(zai)流行的應用服務器平臺中有J2EE,WebLogic,Glassfish,JBoss企業應用平臺,以及Apache Tomcat和Apache Geronimo等等。
三、Web服務器和Web應用服務器的關系
Web服(fu)(fu)(fu)務(wu)器(qi)一般是(shi)(shi)(shi)通用(yong)(yong)(yong)的(de),而(er)應(ying)用(yong)(yong)(yong)服(fu)(fu)(fu)務(wu)器(qi)一般是(shi)(shi)(shi)專用(yong)(yong)(yong)的(de),例(li)如(ru)?Tomcat只能處理(li)Java應(ying)用(yong)(yong)(yong)程序而(er)不(bu)能處理(li)ASPX或PHP。需要注意的(de)是(shi)(shi)(shi),Web服(fu)(fu)(fu)務(wu)器(qi)與應(ying)用(yong)(yong)(yong)服(fu)(fu)(fu)務(wu)器(qi)是(shi)(shi)(shi)并列關系,二(er)者不(bu)存在相互(hu)包容關系。在使用(yong)(yong)(yong)的(de)時候,如(ru)果(guo)訪問的(de)頁面(mian)只有(you)(you)HTML,用(yong)(yong)(yong)Web服(fu)(fu)(fu)務(wu)器(qi)就足夠了,但是(shi)(shi)(shi)如(ru)果(guo)是(shi)(shi)(shi)JSP,此時就需要應(ying)用(yong)(yong)(yong)服(fu)(fu)(fu)務(wu)器(qi),因為只有(you)(you)應(ying)用(yong)(yong)(yong)服(fu)(fu)(fu)務(wu)器(qi)才能解(jie)析JSP里的(de)Java代(dai)碼,并將解(jie)析結果(guo)以(yi)HTML的(de)格式返回給用(yong)(yong)(yong)戶(hu)。
四、Web服務器和其他類型的服務器有何區別
應(ying)用(yong)程序服(fu)務器(qi)(qi)與(yu)Web服(fu)務器(qi)(qi)不(bu)同(tong),因為前者通過多(duo)種協議處(chu)理向應(ying)用(yong)程序提供(gong)業務邏(luo)輯,而Web服(fu)務器(qi)(qi)響應(ying)并處(chu)理HTTP請(qing)求。雖(sui)然Web服(fu)務器(qi)(qi)可能(neng)不(bu)支持事(shi)務或數據庫連接池,但它可能(neng)具(ju)有容(rong)錯和可擴展性功能(neng),如負載(zai)平衡、緩存(cun)和集群。
應用服務器與數據(ju)庫服務器不(bu)同(tong),因為該服務器執行諸如數據(ju)分(fen)析、存儲、數據(ju)處(chu)理(li)、歸(gui)檔(dang)以及其他與數據(ju)管理(li)相關(guan)的任務。數據(ju)庫服務器則(ze)使用(yong)諸如ODBC、JDBC等協議來命名。