Apache和Apache Tomcat的區別是什麼?


Apache 和 Tomcat 都是web網路伺服器,兩者既有聯繫又有區別,在進行HTML、PHP、JSP、Perl等開發過程中,需要準確掌握其各自特點,選擇最佳的伺服器配置。

  Apache是web伺服器(靜態解析,如HTML),tomcat是java應用伺服器(動態解析,如JSP)

  Tomcat只是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴展,但是可以獨立於apache運行

  兩者從以下幾點可以比較的:

  1、兩者都是apache組織開發的

  2、兩者都有HTTP服務的功能

  3、兩者都是開源免費的

聯繫

  1)Apache是普通伺服器,本身只支持html即普通網頁,可以通過插件支持php,還可以與Tomcat連通(Apache單向連接Tomcat,就是說通過Apache可以訪問Tomcat資源,反之不然)。  

  2)Apache只支持靜態網頁,但像Jsp動態網頁就需要Tomcat來處理。

  3)Apache和Tomcat整合使用:

    如果客戶端請求的是靜態頁面,則只需要Apache伺服器響應請求;

    如果客戶端請求動態頁面,則是Tomcat伺服器響應請求,將解析的JSP等網頁代碼解析後回傳給Apache伺服器,再經Apache返回給瀏覽器端。

    這是因為jsp是伺服器端解釋代碼的,Tomcat只做動態代碼解析,Apache回傳解析好的靜態代碼,Apache+Tomcat這樣整合就可以減少Tomcat的服務開銷。

  4)Apache和Tomcat是獨立的,在同一台伺服器上可以集成。

區別

  Apache是有C語言實現的,支持各種特性和模塊從而來擴展核心功能;Tomcat是Java編寫的,更好的支持Servlet和JSP。

  1、Apache是Web伺服器,Web伺服器傳送(serves)頁面使瀏覽器可以瀏覽,Web伺服器專門處理HTTP請求(request),但是應用程序伺服器是通過很多協議來為應用程序提供 (serves)商業邏輯(business logic)。

  Tomcat是運行在Apache上的應用伺服器,應用程序伺服器提供的是客戶端應用程序可以調用(call)的方法 (methods)。它只是一個servlet(jsp也翻譯成servlet)容器,可以認為是Apache的擴展,但是可以獨立於apache運行。

  2、Apache是普通伺服器,本身只支持html靜態普通網頁。不過可以通過插件支持PHP,還可以與Tomcat連通(單向Apache連接Tomcat,就是說通過Apache可以訪問Tomcat資源,反之不然),Tomcat是jsp/servlet容器,同時也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手動調試,不過很容易的。

  3、Apache側重於http server,Tomcat側重於servlet引擎,如果以standalone方式運行,功能上Tomcat與apache等效支持JSP,但對靜態網頁不太理想。

  4、Apache可以運行一年不重啟,穩定性非常好,而Tomcat則不見得。

  5、首選web伺服器是Apache,但Apache解析不了的jsp、servlet才用tomcat。

  6、Apache是很最開始的頁面解析服務,tomcat是後研發出來的,從本質上來說tomcat的功能完全可以替代Apache,但Apache畢竟是tomcat的前輩級人物,並且市場上也有不少人還在用Apache,所以Apache還會繼續存在,不會被取代,apache不能解析java的東西,但解析html速度快。

兩者例子:

  Apache是一輛車,上面可以裝一些東西如html等,但是不能裝水,要裝水必須要有容器(桶),而這個桶也可以不放在卡車上,那這個桶就是TOMCAT。

兩者整合:

  Apache是一個web伺服器環境程序,啟用他可以作為web伺服器使用不過只支持靜態網頁,不支持動態網頁,如asp、jsp、php、cgi

  如果要在Apache環境下運行jsp就需要一個解釋器來執行jsp網頁,而這個jsp解釋器就是Tomcat

  那為什麼還要JDK呢?因為jsp需要連接資料庫的話就要jdk來提供連接資料庫的驅程,所以要運行jsp的web伺服器平台就需要APACHE+TOMCAT+JDK

整合的好處:

  如果客戶端請求的是靜態頁面,則只需要Apache伺服器響應請求

  如果客戶端請求動態頁面,則是Tomcat伺服器響應請求

  因為jsp是伺服器端解釋代碼的,這樣整合就可以減少Tomcat的服務開銷


謝邀。

簡單點說,Apache有兩種含義,一種是指Apache基金會,一種是指Apache伺服器,也就是我們耳熟能詳的httpd。Apache開發團隊剛開始的時候僅僅只有httpd這一個項目,後來隨著httpd伺服器的流行,這個團隊就成立了一個基金會,即Apache基金會。現如今Apache基金會已經成為開源世界的最大的開源組織,其下的開源項目有成百個之多,而Apache伺服器僅僅是其中的一個頂級項目而已。另外,Hadoop,Hbase等非常著名的開源項目也是Apache基金會下的子項目,而Tomcat也是屬於Apache基金會的子項目。

所以,Tomcat是Apache基金會的一個子項目,是和Apache伺服器(也就是httpd)同級別的項目。

同為伺服器,Tomcat的特別之處在於它還是Java的Web容器,能夠處理JSP;而Apache一般是與PHP結合,並不能處理JSP。


你聽說的名稱:真實名稱

apache:apache httpd

tomcat:apache tomcat

明白了嗎?


一個是直升機,一個是貓


以下是個人理解:

Apache開源組織開發的兩款軟體:Apache 和 Tomcat。

一:Apache用於web伺服器,側重於http服務;Tomcat側重於java的servlet容器。

二:口頭說的Apache全稱Apache httpd;口頭說的Tomcat全稱Apache Tomcat;由名字可見 java開發常用的Tomcat中集成了Apache,也可以說Tomcat延伸了Apache。

三:Apache可以通過插件的方式用在不同語言的開發(例如node、PHP);Tomcat通常用於java開發。


在並發上,Apache是採用多進程方式設計的,所以穩定性好;而Tomcat是採用多線程方式設計的,所以速度快,但容易崩。


推薦閱讀:

為什麼計算機專業好多年了,就是學不會編程?
為什麼 .NET 就業市場不大?
25歲,如何職業規劃?
C#好還是JAVA好?

TAG:Java | Apache | ApacheTomcat | JavaWeb |