web服務器和應用服務器_第1頁
web服務器和應用服務器_第2頁
web服務器和應用服務器_第3頁
web服務器和應用服務器_第4頁
web服務器和應用服務器_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、WEB服務器與應用服務器的區(qū)別:1.WEB服務器 :理解 WEB服務器 , 首先你要理解什么是 WEB? WEB你可以簡單理解為你所看到的HTML頁面就是 WEB的數據元素 , 處理這些數據元素的應用軟件就叫 WEB服務器 ,如 IIS 、apache。 WEB服務器與客戶端打交道,它要處理的主要信息有: session 、request 、response 、 HTML、 JS、CS等。2. 應用服務器 :應用服務器如 JSP,處理的是非常規(guī)性WEB頁面( JSP文件),他動態(tài)生成WEB頁面,生成的 WEB頁面在發(fā)送給客戶端(實際上當應用服務器處理完一個 JSP 請求并完成 JSP 生成 H

2、TML后它的任務就結束了,其余的就是 WEB處理的過程了)。WEB服務器與應用服務器的聯系:1.WEB服務器一般是通用的,而應用服務器一般是專用的,如 Tomcat 只處理 Java 應用程序而不能處理 ASPX或 PHP。而 Apache 是一個 WEB服務器 f (HTTP服務器),后來連接 Tomcat 應用服務器來支持 java 。二、另述WEB服務器、應用程序服務器、 HTTP服務器有何區(qū)別? IIS 、Apache、Tomcat、 Weblogic 、WebSphere都各屬于哪種服務器,這些問題困惑了很久,今天終于梳理清楚了:Web服務器的基本功能就是提供 Web信息瀏覽服務。它

3、只需支持 HTTP協(xié)議、 HTML文檔格式及 URL。與客戶端的網絡瀏覽器配合。因為 Web服務器主要支持的協(xié)議就是 HTTP,所以通常情況下 HTTP服務器和 WEB服務器是相等的 ( 有沒有支持除 HTTP之外的協(xié)議的 web 服務器,作者沒有考證過 ) ,說的是一回事。應用程序服務器 ( 簡稱應用服務器 ) ,我們先看一下微軟對它的定義: 我們把應用程序服務器定義為“作為服務器執(zhí)行共享業(yè)務應用程序的底層的系統(tǒng)軟件”。 就像文件服務器為很多用戶提供文件一樣,應用程序服務器讓多個用戶可以同時使用應用程序(通常是客戶創(chuàng)建的應用程序) 通俗的講, Web服務器傳送 (serves) 頁面使瀏覽器

4、可以瀏覽,然而應用程序服務器提供的是客戶端應用程序可以調用(call)的方法 (methods) 。確切一點,你可以說 :Web服務器專門處理HTTP請求 (request),但是應用程序服務器是通過很多協(xié)議來為應用程序提供(serves) 商業(yè)邏輯 (business logic)。以 Java EE 為例, Web服務器主要是處理靜態(tài)頁面處理和作為 Servlet 容器,解釋和執(zhí)行 servlet/JSP ,而應用服務器是運行業(yè)務邏輯的,主要是 EJB、 JNDI 和 JMX API 等 J2EE API 方面的,還包含事務處理、數據庫連接等功能,所以在企業(yè)級應用中,應用服務器提供的功能比

5、 WEB服務器強大的多。以這樣的定義, IIS 、 Apache 都可以屬于 Web服務器, Weblogic 、WebSphere都屬于應用服務器。Apache: 在 Web服務器中, Apache是純粹的 Web服務器,經常與Tomcat配對使用。它對 HTML頁面具有強大的解釋能力,但是不能解釋嵌入頁面內的服務器端腳本代碼( JSP/Servlet 。Tomcat: 早期的 Tomcat 是一個嵌入 Apache 內的 JSP/Servlet 解釋引擎Apache+Tomcat就相當于 IIS+ASP。后來的 Tomcat 已不再嵌入 Apache 內, Tomcat 進程獨立于 Apa

6、che 進程運行。 而且, Tomcat 已經是一個獨立的 Servlet 和 JSP容器,業(yè)務邏輯層代碼和界面交互層代碼可以分離了。因此,有人把 Tomcat 叫做輕量級應用服務器。IIS: 微軟早期的 IIS ,就是一個純粹的 Web服務器。后來,它嵌入了ASP引擎,可以解釋 VBScript 和 JScript 服務器端代碼了,這時,它就可以兼作應用服務器。當然,它與 J2EE應用服務器根本無法相比,但是,從功能上說,從原理上說,它勉強可以稱之為應用服務器。確切地說,它是兼有一點應用服務器功能的 Web服務器。綜上: Apache 是純粹的 web 服務器,而 Tomcat 和 IIS

7、因為具有了解釋執(zhí)行服務器端代碼的能力,可以稱作為輕量級應用服務器或帶有服務器功能的Web服務器。Weblogic 、WebSphere因為能提供強大的 J2EE功能,毫無疑問是絕對的應用服務器。對于處于中間位置的 Tomcat,它可以配合純 Web服務器 Apache一起使用,也可以作為應用服務器的輔助與應用服務器一起部署:一、 Tomcat 與應用服務器到目前為止, Tomcat 一直被認為是 Servlet/JSP API的執(zhí)行器,也就所謂的 Servlet 容器。然而, Tomcat 并不僅僅如此,它還提供了 JNDI 和 JMX API 的實現機制。盡管如此, Tomcat 仍然還不能

8、算是應用服務器,因為它不提供大多數 J2EE API 的支持。很有意思的是,目前許多的應用服務器通常把Tomcat 作為它們 Servlet和 JSPAPI 的容器。由于 Tomcat 允許開發(fā)者只需通過加入一行致謝,就可以把Tomcat嵌入到它們的應用中。遺憾的是,許多商業(yè)應用服務器并沒有遵守此規(guī)則。對于開發(fā)者來說,如果是為了尋找利用 Servlet 、JSP、 JNDI 和 JMX技術來生成 Java Web 應用的話,選擇 Tomcat 是一個優(yōu)秀的解決方案;但是為了尋找支持其他的 J2EE API,那么尋找一個應用服務器或者把 Tomcat 作為應用服務器的輔助,將是一個不錯的解決方案

9、;第三種方式是找到獨立的 J2EE API 實現,然后把它們跟 Tomcat 結合起來使用。雖然整合會帶來相關的問題,但是這種方式是最為有效的。二、 Tomcat 與 Web服務器Tomcat 是提供一個支持 Servlet 和 JSP運行的容器。 Servlet 和 JSP能根據實時需要,產生動態(tài)網頁內容。而對于 Web服務器來 說, Apache 僅僅支持靜態(tài)網頁,對于支持動態(tài)網頁就會顯得無能為力; Tomcat 則既能為動態(tài)網頁服務,同時也能為靜態(tài)網頁提供支持。盡管它沒有通常的 Web服務器快、功能也不如 Web服務器豐富,但是 Tomcat 逐漸為支持靜態(tài)內容不斷擴充。大多數的Web服

10、務器都是用底層語言編寫如 C,利用了相應平臺的特征,因此用純 Java 編寫的 Tomcat 執(zhí)行速度不可能與它們相提并論。一般來說,大的站點都是將 Tomcat 與 Apache 的結合, Apache 負責接受所有來自客戶端的 HTTP請求,然后將 Servlets 和 JSP的請求轉發(fā)給 Tomcat 來處理。 Tomcat 完成處理后,將響應傳回給 Apache,最后 Apache 將響應返回給客戶端。而且為了提高性能,可以一臺apache 連接多臺 tomcat 實現負載平衡。關于 WEB服務器、應用程序服務器的更詳細區(qū)別可以參考下面這篇文章:通俗的講, Web服務器傳送 (serv

11、es) 頁面使瀏覽器可以瀏覽,然而應用程序服務器提供的是客戶端應用程序可以調用(call)的方法 (methods) 。確切一點,你可以說:Web服務器專門處理HTTP請求 (request),但是應用程序服務器是通過很多協(xié)議來為應用程序提供(serves) 商業(yè)邏輯 (business logic)。下面讓我們來細細道來:Web服務器 (Web Server)Web服務器可以解析 (handles)HTTP 協(xié)議。當 Web服務器接收到一個 HTTP 請求 (request) ,會返回一個 HTTP響應 (response) ,例如送回一個 HTML頁面。為了處理一個請求 (request)

12、 , Web服務器可以響應 (response) 一個靜態(tài)頁面或圖片, 進行頁面跳轉 (redirect) ,或者把動態(tài)響應 (dynamic response) 的產生委托 (delegate)給一些其它的程序例如CGI 腳本, JSP(JavaServer Pages)腳本, servlets,ASP(Active Server Pages)腳本,服務器端 (server-side)JavaScript,或者一些其它的服務器端(server-side)技術。無論它們 ( 譯者 注 : 腳本 ) 的目的如何,這些服務器端 (server-side) 的程序通常產生一個HTML的響應 (res

13、ponse) 來讓瀏覽器可以瀏覽。要知道, Web服務器的代理模型 (delegation model)非常簡單。當一個請求 (request) 被送到 Web服務器里來時,它只單純的把請求 (request) 傳遞給可以很好的處理請求 (request) 的程序 ( 譯者注 : 服務器端腳本 ) 。Web服務器僅僅提供一個可以執(zhí)行服務器端 (server-side) 程序和返回 ( 程序所產生的 ) 響 應(response) 的環(huán)境,而不會超出職能范圍。服務器端 (server-side) 程序通常具有事務處理 (transaction processing),數據庫連接 (databas

14、e connectivity)和消息 (messaging) 等功能。雖然 Web服務器不支持事務處理或數據庫連接池,但它可以配置(employ)各種策略 (strategies)來實現容錯性 (fault tolerance)和可擴展性(scalability),例如負載平衡 (load balancing),緩沖 (caching) 。集群特征(clusteringfeatures)經常被誤認為僅僅是應用程序服務器專有的特征。應用程序服務器 (The Application Server)根據我們的定義,作為應用程序服務器,它通過各種協(xié)議,可以包括HTTP,把商業(yè)邏輯暴露給 (expose

15、) 客戶端應用程序。 Web服務器主要是處理向瀏覽器發(fā)送 HTML以供瀏覽,而應用程序服務器提供訪問商業(yè)邏輯的途徑以供客戶端應用程序使用。應用程序使用此商業(yè)邏輯就象你調用對象的一個方法 ( 或過程語言中的一個函數 ) 一樣。應用程序服務器的客戶端( 包含有圖形用戶界面 (GUI) 的) 可能會運行在一臺PC、一個 Web服務器或者甚至是其它的應用程序服務器上。在應用 程序服務器與其客戶端之間來回穿梭 (traveling) 的信息不僅僅局限于簡單的顯示標記。相反,這種信息就是程序邏輯 (program logic) 。 正是由于這種邏輯取得了 (takes) 數據和方法調用 (calls) 的

16、形式而不是靜態(tài) HTML,所以客戶端才可以隨心所欲的使用這種被暴露的商業(yè)邏輯。在大多數情形下,應用程序服務器是通過組件(component)的應用程序接口 (API) 把商業(yè)邏輯暴露 (expose)( 給客戶端應用程序 ) 的,例如基于J2EE(Java 2 Platform, Enterprise Edition)應用程序服務器的EJB(Enterprise JavaBean)組件模型。此外,應用程序服務器可以管理自己的資源,例如看大門的工作(gate-keeping duties)包括安全 (security),事務處理 (transaction processing),資源池 (res

17、ource pooling), 和消息(messaging) 。就象 Web服務器一樣,應用程序服務器配置了多種可擴展(scalability)和容錯 (fault tolerance)技術。一個例子例如,設想一個在線商店( 網站 ) 提供實時定價 (real-time pricing)和有效性 (availability) 信息。這個站點 (site) 很可能會提供一個表單 (form) 讓你來選擇產品。當你提交查詢 (query) 后,網站會進行查找 (lookup) 并把結果內嵌在 HTML頁面中返回。網站可以有很多種方式來實現這種功能。我要介紹一個不使用應用程序服務器 的情景和一個使用

18、應用程序服務器的情景。觀察一下這兩中情景的不同會有助于你了解應用程序服務器的功能。情景 1: 不帶應用程序服務器的Web服務器在此種情景下,一個Web服務器獨立提供在線商店的功能。Web服務器獲得你的請求 (request),然后發(fā)送給服務器端 (server- side)可以處理請求(request)的程序。此程序從數據庫或文本文件(flat file,譯者注 :flat file是指沒有特殊格式的非二進制的文件,如properties和 XML文件等 ) 中查找定價信息。一旦找到,服務器端(server-side)程序 把結果信息表示成(formulate)HTML 形式,最后 Web服務

19、器把會它發(fā)送到你的Web瀏覽器。簡而言之, Web服務器只是簡單的通過響應 (response)HTML 頁面來處理HTTP請求 (request) 。情景 2: 帶應用程序服務器的Web服務器情景 2 和情景 1 相同的是 Web服務器還是把響應 (response) 的產生委托(delegates)給腳本 ( 譯者注 : 服務器端(server-side)程序 ) 。然而,你可以把查找定價的商業(yè)邏輯 (business logic)放到應用程序服務器上。由于這種變化,此腳本只是簡單的調用應用程序服務器的查找服務(lookup service),而不是已經知道如何查找數據然后表示為(form

20、ulate)一個響應 (response) 。 這時當該腳本程序產生HTML響應 (response) 時就可以使用該服務的返回結果了。在此情景中,應用程序服務器提供(serves) 了用于查詢產品的定價信息的商業(yè)邏輯。 ( 服務器的 ) 這種功能 (functionality) 沒 有指出有關顯示和客戶端如何使用此信息的細節(jié),相反客戶端和應用程序服務器只是來回傳送數據。當有客戶端調用應用程序服務器的查找服務 (lookup service) 時,此服務只是簡單的查找并返回結果給客戶端。通過從響應產生 (response-generating)HTML 的代碼中分離出來,在應用程序之中該定價 ( 查找 ) 邏輯的可重

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論