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