您好,登錄后才能下訂單哦!
Apache與Tomcat都是提供Web服務(wù)的服務(wù)器軟件。但很多人對(duì)兩者有什么聯(lián)系, 兩者到底是不是同一個(gè)東西,兩者到底有沒(méi)有依賴(lài)等這類(lèi)問(wèn)題難以回答,甚至混淆這兩者。作為開(kāi)發(fā)人員,我也有同樣的困惑,今天查閱了很多資料,將這些資料貼出來(lái),供學(xué)習(xí)使用。
1、Apache是什么
Apache是一款開(kāi)源的Web服務(wù)器產(chǎn)品,大部分都用C語(yǔ)言編寫(xiě)(你直接理解成用c語(yǔ)言編寫(xiě)算了)。全世界使用量排名第一的Web服務(wù)器。另外,Apache也是一個(gè)開(kāi)源軟件基金會(huì)的名字,其下管理很多開(kāi)源項(xiàng)目,也包括這款叫Apache的Web服務(wù)器軟件。
2、Tomcat是什么
Tomcat同樣是一款開(kāi)源的Web服務(wù)器產(chǎn)品,使用Java語(yǔ)言編寫(xiě)。也同Apache服務(wù)器一樣,提供Web服務(wù),但Tomcat主要用于承載JSP、CGI等服務(wù)端處理腳本,并提供運(yùn)行環(huán)境,處理客戶(hù)端請(qǐng)求,再輸出HTML返回給用戶(hù)。這類(lèi)在服務(wù)端動(dòng)態(tài)加載數(shù)據(jù)(可更改的數(shù)據(jù))并回傳給客戶(hù)端瀏覽器的網(wǎng)站叫動(dòng)態(tài)網(wǎng)站或動(dòng)態(tài)網(wǎng)頁(yè)。相對(duì)的,還有一類(lèi)叫靜態(tài)網(wǎng)頁(yè)的,就是數(shù)據(jù)不變動(dòng)的網(wǎng)頁(yè)或網(wǎng)站,這類(lèi)頁(yè)面多是HTML或HTML文件集合。
再提一點(diǎn)Tomcat項(xiàng)目也是掛在Apache開(kāi)源軟件基金會(huì)下的,作為一個(gè)項(xiàng)目由核心團(tuán)隊(duì)和全世界的程序員共同維護(hù)和開(kāi)發(fā)。
3、Apache與Tomcat比較
相同點(diǎn):
Apache與Tomcat都是Web服務(wù)器,都支持跨平臺(tái),都是開(kāi)源項(xiàng)目
Apache與Tomcat都屬于Apache開(kāi)源軟件基金會(huì)下的項(xiàng)目,并運(yùn)行在全世界很多服務(wù)器上
不同點(diǎn):
Apache服務(wù)器是C語(yǔ)言編寫(xiě),其主要的側(cè)重點(diǎn)是并行能力和均衡負(fù)載,Tomcat服務(wù)器用Java編寫(xiě),主要側(cè)重于作為一個(gè)Servlet容器,做到后臺(tái)動(dòng)態(tài)處理,由Java和JRE處理。
Apache服務(wù)器只支持靜態(tài)頁(yè)面的請(qǐng)求處理,并不支持動(dòng)態(tài)網(wǎng)頁(yè)的處理。要完成動(dòng)態(tài)處理,必須通過(guò)插件或作為Apache擴(kuò)展模塊,在啟動(dòng)時(shí)動(dòng)態(tài)加載到Apache擴(kuò)展接口供調(diào)用。而Tomcat就支持動(dòng)態(tài)網(wǎng)頁(yè)處理,使用CGI或Java,我們對(duì)Java的使用更多,所以大部分時(shí)候說(shuō)到Tomcat就能想到JSP。
4、分析與說(shuō)明
Apache主要提供的是靜態(tài)頁(yè)面處理,對(duì)于動(dòng)態(tài)頁(yè)面處理這類(lèi)問(wèn)題,多是作為其擴(kuò)展的一部分由其他語(yǔ)言或第三方插件控制??梢赃@樣想,Apache提供了一個(gè)中轉(zhuǎn),將不同的數(shù)據(jù)請(qǐng)求分發(fā)到各個(gè)對(duì)應(yīng)的模塊,PHP請(qǐng)求發(fā)送 到對(duì)應(yīng)的php模塊,CGI請(qǐng)求則創(chuàng)建一個(gè)進(jìn)程并調(diào)用CGI腳本,這時(shí)候當(dāng)對(duì)應(yīng)模塊處理完,將作為輸出返回給Apache服務(wù)器,Apache服務(wù)器再將這些結(jié)果(HTML頁(yè)面)返回給客戶(hù)端瀏覽器。
而Tomcat雖然也是個(gè)服務(wù)器(這里我們只討論作為Java Servlet容器的實(shí)現(xiàn)),接受的只能是對(duì)JSP的請(qǐng)求。Tomcat是按照J(rèn)2EE發(fā)布的JSP和Servlet標(biāo)準(zhǔn)實(shí)現(xiàn)的,完全支持這兩種標(biāo)準(zhǔn),被作為一個(gè)Servlet容器實(shí)現(xiàn)。當(dāng)Tomcat接收到JSP頁(yè)面請(qǐng)求時(shí),先用Tomcat解析,得到相應(yīng)的參數(shù),再找到對(duì)應(yīng)的Servlet路由,之后調(diào)用Servlet接口中的對(duì)應(yīng)方法(Get、Post、Delete、Put等),處理客戶(hù)端傳回的數(shù)據(jù)或請(qǐng)求動(dòng)作,最后得到輸出,返回給Tomcat,Tomcat再使用JSP渲染出HTTP,傳回客戶(hù)端瀏覽器。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。