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