淺談Apache與Tomcat的關係和區別

Apache 和 Tomcat 都是Apache組織開發的開源免費色HTTP服務器。兩者既有聯繫又有區別,在進行HTML、PHP、JSP、Perl等開發過程中,需要準確掌握其各自特點,選擇最佳的服務器配置。
  Apache是web服務器(靜態解析,如HTML),tomcat是java應用服務器(動態解析,如JSP)
  Tomcat只是一個servlet(jsp也翻譯成servlet)容器,可以認爲是apache的擴展,但是可以獨立於apache運行。

聯繫

  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是獨立的,在同一臺服務器上可以集成。

區別

  1. Apache是有C語言實現的,支持各種特性和模塊從而來擴展核心功能;Tomcat是Java編寫的,更好的支持Servlet和JSP。
  2. Apache是Web服務器,Web服務器傳送(serves)頁面使瀏覽器可以瀏覽,Web服務器專門處理HTTP請求(request),但是應用程序服務器是通過很多協議來爲應用程序提供 (serves)商業邏輯(business logic)。Tomcat是運行在Apache上的應用服務器,應用程序服務器提供的是客戶端應用程序可以調用(call)的方法 (methods)。它只是一個servlet(jsp也翻譯成servlet)容器,可以認爲是Apache的擴展,但是可以獨立於apache運行。
  3. Apache是普通服務器,本身只支持html靜態普通網頁。不過可以通過插件支持PHP,還可以與Tomcat連通(單向Apache連接Tomcat,就是說通過Apache可以訪問Tomcat資源,反之不然),Tomcat是jsp/servlet容器,同時也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手動調試,不過很容易的。
  4. Apache側重於http server,Tomcat側重於servlet引擎,如果以standalone方式運行,功能上Tomcat與apache等效支持JSP,但對靜態網頁不太理想。
  5. Apache可以運行一年不重啓,穩定性非常好,而Tomcat則不見得。
  6. 首選web服務器是Apache,但Apache解析不了的jsp、servlet才用tomcat。
  7. 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的服務開銷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章