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