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