web服務器,應用程序服務器,http服務器的區別是什么?
Web服務器的基本功能就是提供Web信息瀏覽服務。它只需支持HTTP協議、HTML文檔格式及URL。與客戶端的瀏覽器配合。因為Web服務器主要支持的協議就是HTTP,所以通常情況下HTTP服務器和WEB服務器是相等的。
應用程序服務器(簡稱應用服務器),我們先看一下微軟對它的定義:"我們把應用程序服務器定義為“作為服務器執行共享業務應用程序的底層的系統軟件”。 就像文件服務器為很多用戶提供文件一樣,應用程序服務器讓多個用戶可以同時使用應用程序(通常是客戶創建的應用程序)"通俗的講,Web服務器向客戶端傳送頁面使瀏覽器可以瀏覽,然而應用程序服務器提供的是客戶端應用程序可以調用的方法。確切一點,你可以說:Web服務器專門處理HTTP請求(request),但是應用程序服務器是通過很多協議來為應用程序提供商業邏輯 (business logic)。
以Java EE為例,Web服務器主要是處理靜態頁面處理和作為 Servlet的容器,用來解釋和執行servlet/JSP,而應用服務器是運行業務邏輯的,主要是EJB、 JNDI和JMX API等J2EE API方面的,還包含事務處理、數據庫連接等功能,所以在企業級應用中,應用服務器提供的功能比WEB服務器強大的多。以這樣的定義,IIS、Apache、Tomcat都可以屬于Web服務器,Weblogic、WebSphere都屬于應用服務器。
Apache:在Web服務器中,Apache是純粹的Web服務器,經常與Tomcat配對使用。它對HTML頁面具有強大的解釋能力,但是不能解釋嵌入頁面內的服務器端腳本代碼(JSP/Servlet)。
Tomcat:早期的Tomcat是一個嵌入Apache內的JSP/Servlet解釋引擎。Apache+Tomcat就相當于IIS+ASP。后來的Tomcat已不再嵌入Apache內,Tomcat進程獨立于Apache進程運行。 而且,Tomcat已經是一個獨立的Servlet和JSP容器,業務邏輯層代碼和界面交互層代碼可以分離了。因此,有人把Tomcat叫做輕量級應用服務器。
IIS:微軟早期的IIS,就是一個純粹的Web服務器。后來,它嵌入了ASP引擎,可以解釋VBScript和JScript服務器端代碼了,這時,它就可以兼作應用服務器。當然,它與J2EE應用服務器根本無法相比,但是,從功能上說,從原理上說,它勉強可以稱之為應用服務器。確切地說,它是兼有一點應用服務器功能的Web服務器。
總結:Apache是純粹的web服務器,而Tomcat和IIS因為具有了解釋執行服務器端代碼的能力,可以稱作為輕量級應用服務器或帶有服務器功能的Web服務器。Weblogic、WebSphere因為能提供強大的J2EE功能,毫無疑問是絕對的應用服務器。對于處于中間位置的Tomcat,它可以配合純Web服務器Apache一起使用,也可以作為應用服務器的輔助與應用服務器一起部署:
Tomcat與Web服務器
Tomcat是提供一個支持Servlet和JSP運行的容器。Servlet和JSP能根據實時需要,產生動態網頁內容。而對于Web服務器來說, Apache僅僅支持靜態網頁,對于支持動態網頁就會顯得無能為力;Tomcat則既能為動態網頁服務,同時也能為靜態網頁提供支持。盡管它沒有通常的Web服務器快、功能也不如Web服務器豐富,但是Tomcat逐漸為支持靜態內容不斷擴充。大多數的Web服務器都是用底層語言編寫如C,利用了相應平臺的特征,因此用純Java編寫的Tomcat執行速度不可能與它們相提并論。
一般來說,大的站點都是將Tomcat與Apache的結合,Apache負責接受所有來自客戶端的HTTP請求,然后將Servlets和JSP的請求轉發給Tomcat來處理。Tomcat完成處理后,將響應傳回給Apache,最后Apache將響應返回給客戶端。而且為了提高性能,可以一臺apache連接多臺tomcat實現負載平衡。在大多數情形下,應用程序服務器是通過各種組件的應用程序接口(API)把商業邏輯暴露給客戶端應用程序的。應用程序服務器還可以管理自己的資源,例如看大門的工作包括安全(security),事務處理(transaction processing),資源池(resource pooling),和消息(messaging)。就象Web服務器一樣,應用程序服務器配置了多種可擴展(scalability)和容錯(fault tolerance)技術。