新聞中心
Apache與Tomcat都是提供Web服務的服務器軟件。但很多人對兩者有什么聯系, 兩者到底是不是同一個東西,兩者到底有沒有依賴等這類問題難以回答,甚至混淆這兩者。作為開發(fā)人員,我也有同樣的困惑,今天查閱了很多資料,將這些資料貼出來,供學習使用。
1、Apache是什么
Apache是一款開源的Web服務器產品,大部分都用C語言編寫(你直接理解成用c語言編寫算了)。全世界使用量排名第一的Web服務器。另外,Apache也是一個開源軟件基金會的名字,其下管理很多開源項目,也包括這款叫Apache的Web服務器軟件。
2、Tomcat是什么
Tomcat同樣是一款開源的Web服務器產品,使用Java語言編寫。也同Apache服務器一樣,提供Web服務,但Tomcat主要用于承載JSP、CGI等服務端處理腳本,并提供運行環(huán)境,處理客戶端請求,再輸出HTML返回給用戶。這類在服務端動態(tài)加載數據(可更改的數據)并回傳給客戶端瀏覽器的網站叫動態(tài)網站或動態(tài)網頁。相對的,還有一類叫靜態(tài)網頁的,就是數據不變動的網頁或網站,這類頁面多是HTML或HTML文件集合。
再提一點Tomcat項目也是掛在Apache開源軟件基金會下的,作為一個項目由核心團隊和全世界的程序員共同維護和開發(fā)。
3、Apache與Tomcat比較
相同點:
Apache與Tomcat都是Web服務器,都支持跨平臺,都是開源項目
Apache與Tomcat都屬于Apache開源軟件基金會下的項目,并運行在全世界很多服務器上
不同點:
Apache服務器是C語言編寫,其主要的側重點是并行能力和均衡負載,Tomcat服務器用Java編寫,主要側重于作為一個Servlet容器,做到后臺動態(tài)處理,由Java和JRE處理。
Apache服務器只支持靜態(tài)頁面的請求處理,并不支持動態(tài)網頁的處理。要完成動態(tài)處理,必須通過插件或作為Apache擴展模塊,在啟動時動態(tài)加載到Apache擴展接口供調用。而Tomcat就支持動態(tài)網頁處理,使用CGI或Java,我們對Java的使用更多,所以大部分時候說到Tomcat就能想到JSP。
4、分析與說明
Apache主要提供的是靜態(tài)頁面處理,對于動態(tài)頁面處理這類問題,多是作為其擴展的一部分由其他語言或第三方插件控制。可以這樣想,Apache提供了一個中轉,將不同的數據請求分發(fā)到各個對應的模塊,PHP請求發(fā)送 到對應的php模塊,CGI請求則創(chuàng)建一個進程并調用CGI腳本,這時候當對應模塊處理完,將作為輸出返回給Apache服務器,Apache服務器再將這些結果(HTML頁面)返回給客戶端瀏覽器。
而Tomcat雖然也是個服務器(這里我們只討論作為Java Servlet容器的實現),接受的只能是對JSP的請求。Tomcat是按照J2EE發(fā)布的JSP和Servlet標準實現的,完全支持這兩種標準,被作為一個Servlet容器實現。當Tomcat接收到JSP頁面請求時,先用Tomcat解析,得到相應的參數,再找到對應的Servlet路由,之后調用Servlet接口中的對應方法(Get、Post、Delete、Put等),處理客戶端傳回的數據或請求動作,最后得到輸出,返回給Tomcat,Tomcat再使用JSP渲染出HTTP,傳回客戶端瀏覽器。
另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站欄目:Apache與Tomcat關系-創(chuàng)新互聯
鏈接分享:http://ef60e0e.cn/article/csddde.html