web server

web server

Web Server中文名稱叫網頁伺服器或web伺服器。WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上信息瀏覽服務

基本信息

名詞解釋

Web Server中文名稱叫網頁伺服器或web伺服器。WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上信息瀏覽服務 。

解析

Web伺服器可以解析(handles)HTTP協定。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP回響(response),例如送回一個HTML頁面。為了處理一個請求(request),Web伺服器可以回響(response)一個靜態頁面或圖片,進行頁面跳轉(redirect),或者把動態回響(dynamic response)的產生委託(delegate)給一些其它的程式例如CGI腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,伺服器端(server-side)JavaScript,或者一些其它的伺服器端(server-side)技術。無論它們(譯者註:腳本)的目的如何,這些伺服器端(server-side)的程式通常產生一個HTML的回響(response)來讓瀏覽器可以瀏覽。

web服務

通俗的講,Web伺服器傳送(serves)頁面使瀏覽器可以瀏覽,然而應用程式伺服器提供的是客戶端應用程式可以調用(call)的方法(methods)。確切一點,你可以說:Web伺服器專門處理HTTP請求(request),但是應用程式伺服器是通過很多協定來為應用程式提供(serves)商業邏輯(business logic)。

主要web server產品

kangle

kangleweb伺服器(簡稱:kangle)是一款跨平台、功能強大、安全穩定、易操作的高性能web伺服器和反向代理伺服器軟體。除此:kangle也是一款專為做虛擬主機研發的web伺服器。實現虛擬主機獨立進程、獨立身份運行。用戶之間安全隔離,一個用戶出問題不影響其他用戶。安全支持php、asp、net、java、ruby等多種動態開發語言。

nginx

Nginx(發音同 engine x)是一款輕量級的Web伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協定下發行。由俄羅斯的程式設計師Igor Sysoev所開發,供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。其特點是占有記憶體少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站用戶有:新浪、網易、騰訊等。

apache

Apache是世界使用排名第一的Web伺服器軟體。它可以運行在幾乎所有廣泛使用的計算機平台上,由於其跨平台和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。同時Apache音譯為阿帕奇,是北美印第安人的一個部落,叫阿帕奇族,在美國的西南部。也是一個基金會的名稱、一種武裝直升機等等。

WebServer

Web伺服器可以解析(handles)HTTP協定。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP回響(response),例如送回一個HTML頁面。為了處理一個請求(request),Web伺服器可以回響(response)一個靜態頁面或圖片,進行頁面跳轉(redirect),或者把動態回響(dynamic response)的產生委託(delegate)給一些其它的程式例如CGI腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,伺服器端(server-side)JavaScript,或者一些其它的伺服器端(server-side)技術。無論它們(譯者註:腳本)的目的如何,這些伺服器端(server-side)的程式通常產生一個HTML的回響(response)來讓瀏覽器可以瀏覽。

要知道,Web伺服器的代理模型(delegation model)非常簡單。當一個請求(request)被送到Web伺服器里來時,它只單純的把請求(request)傳遞給可以更好的處理請求(request)的程式(譯者註:伺服器端腳本)。Web伺服器除了僅僅提供一個可以執行伺服器端(server-side)程式和返回(程式所產生的)回響(response)的環境,而不會提供任何功能。伺服器端(server-side)程式通常具有事務處理(transaction processing),資料庫連線(database connectivity)和訊息(messaging)等功能。

雖然Web伺服器不支持事務處理或資料庫連線池,但它可以配置(employ)各種策略(strategies)來實現容錯性(fault tolerance)和可擴展性(scalability),例如負載平衡(load balancing),緩衝(caching)。集群特徵(clustering—features)經常被誤認為僅僅是應用程式伺服器專有的特徵。

應用程式伺服器(the Application Server)

根據我們的定義,作為應用程式伺服器,它通過各種協定,可以包括HTTP,把商業邏輯暴露給(expose)客戶端應用程式。Web伺服器主要是處理向瀏覽器傳送HTML以供瀏覽,而應用程式伺服器提供訪問商業邏輯的途徑以供客戶端應用程式使用。應用程式使用此商業邏輯就象你調用對象的一個方法(或過程語言中的一個函式)一樣。

應用程式伺服器的客戶端(包含有圖形用戶界面(GUI)的)可能會運行在一台PC、一個Web伺服器或者甚至是其它的應用程式伺服器上。在應用程式伺服器與其客戶端之間來回穿梭(traveling)的信息不僅僅局限於簡單的顯示標記。相反,這種信息就是程式邏輯(program logic)。 正是由於這種邏輯取得了(takes)數據和方法調用(calls)的形式而不是靜態HTML,所以客戶端才可以隨心所欲的使用這種被暴露的商業邏輯。

在大多數情形下,應用程式伺服器是通過組件(component)的應用程式接口(API)把商業邏輯暴露(expose)(給客戶端應用程式)的,例如基於J2EE(Java 2 Platform, Enterprise Edition)應用程式伺服器的EJB(Enterprise JavaBean)組件模型。此外,應用程式伺服器可以管理自己的資源,例如看大門的工作(gate-keeping duties)包括安全(security),事務處理(transaction processing),資源池(resource pooling), 和訊息(messaging)。就象Web伺服器一樣,應用程式伺服器配置了多種可擴展(scalability)和容錯(fault tolerance)技術。

一個例子

例如,構想一個線上商店(網站)提供實時定價(real-time pricing)和有效性(availability)信息。這個站點(site)很可能會提供一個表單(form)讓你來選擇產品。當你提交查詢(query)後,網站會進行查找(lookup)並把結果內嵌在HTML頁面中返回。網站可以有很多種方式來實現這種功能。我要介紹一個不使用應用程式伺服器的情景和一個使用應用程式伺服器的情景。觀察一下這兩中情景的不同會有助於你了解應用程式伺服器的功能。

不帶應用程式伺服器的web伺服器

在此種情景下,一個Web伺服器獨立提供線上商店的功能。Web伺服器獲得你的請求(request),然後傳送給伺服器端(server-side)可以處理請求(request)的程式。此程式從資料庫或文本檔案(flat file,譯者註:flat file是指沒有特殊格式的非二進制的檔案,如properties和XML檔案等)中查找定價信息。一旦找到,伺服器端(server-side)程式把結果信息表示成(formulate)HTML形式,最後Web伺服器把會它傳送到你的Web瀏覽器。

簡而言之,Web伺服器只是簡單的通過回響(response)HTML頁面來處理HTTP請求(request)。

Web

情景2和情景1相同的是Web伺服器還是把回響(response)的產生委託(delegates)給腳本(譯者註:伺服器端(server-side)程式)。然而,你可以把查找定價的商業邏輯(business logic)放到應用程式伺服器上。由於這種變化,此腳本只是簡單的調用應用程式伺服器的查找服務(lookup service),而不是已經知道如何查找數據然後表示為(formulate)一個回響(response)。 這時當該腳本程式產生HTML回響(response)時就可以使用該服務的返回結果了。

在此情景中,應用程式伺服器提供(serves)了用於查詢產品的定價信息的商業邏輯。(伺服器的)這種功能(functionality)沒有指出有關顯示和客戶端如何使用此信息的細節,相反客戶端和應用程式伺服器只是來回傳送數據。當有客戶端調用應用程式伺服器的查找服務(lookup service)時,此服務只是簡單的查找並返回結果給客戶端。

通過從回響產生(response-generating)HTML的代碼中分離出來,在應用程式之中該定價(查找)邏輯的可重用性更強了。其他的客戶端,例如收款機,也可以調用同樣的服務(service)來作為一個店員給客戶結帳。相反,在情景1中的定價查找服務是不可重用的因為信息內嵌在HTML頁中了。

總而言之,在情景2的模型中,在Web伺服器通過回應HTML頁面來處理HTTP請求(request),而應用程式伺服器則是通過處理定價和有效性(availability)請求(request)來提供應用程式邏輯的。

警告

現在,XML Web Services已經使應用程式伺服器和Web伺服器的界線混淆了。通過傳送一個XML有效載荷(payload)給伺服器,Web伺服器現在可以處理數據和回響(response)的能力與以前的應用程式伺服器同樣多了。

另外,現在大多數應用程式伺服器也包含了Web伺服器,這就意味著可以把Web伺服器當作是應用程式伺服器的一個子集(subset)。雖然應用程式伺服器包含了Web伺服器的功能,但是開發者很少把應用程式伺服器部署(deploy)成這種功能(capacity)(譯者註:這種功能是指既有應用程式伺服器的功能又有Web伺服器的功能)。相反,如果需要,他們通常會把Web伺服器獨立配置,和應用程式伺服器一前一後。這種功能的分離有助於提高性能(簡單的Web請求(request)就不會影回響用程式伺服器了),分開配置(專門的Web伺服器,集群(clustering)等等),而且給最佳產品的選取留有餘地。

The Web server

A Web server handles the HTTP protocol. When the Web server receives an HTTP request, it responds with an HTTP response, such as sending back an HTML page. To process a request, a Web server may respond with a static HTML page or image, send a redirect, or delegate the dynamic response generation to some other program such as CGI scripts, JSPs (JavaServer Pages), servlets, ASPs (Active Server Pages), server-side JavaScripts, or some other server-side technology. Whatever their purpose, such server-side programs generate a response, most often in HTML, for viewing in a Web browser.

Understand that a Web server's delegation model is fairly simple. When a request comes into the Web server, the Web server simply passes the request to the program best able to handle it. The Web server doesn't provide any functionality beyond simply providing an environment in which the server-side program can execute and pass back the generated responses. The server-side program usually provides for itself such functions as transaction processing, database connectivity, and messaging.

While a Web server may not itself support transactions or database connection pooling, it may employ various strategies for fault tolerance and scalability such as load balancing, caching, and clustering—features oftentimes erroneously assigned as features reserved only for application servers.

To summarize, a Web server simply processes HTTP requests by responding with HTML pages.

相關詞條

相關搜尋

熱門詞條

聯絡我們