首頁 > 硬體

什麼是WEB伺服器?

2020-10-13 06:05:54

簡介:WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上資訊瀏覽服務。 WWW 是 Internet 的多媒體資訊查詢工具,是 Internet 上近年才發展起來的服務,也是發展最快和目前用的最廣泛的服務。正是因為有了WWW工具,才使得近年來 Internet 迅速發展,且使用者數量飛速增長。

產品定義

Web伺服器是可以向發出請求的瀏覽器提供檔案的程式。

1、伺服器是一種被動程式:只有當Internet上執行在其他計算機中的瀏覽器發出請求時,伺服器才會響應。

2 、最常用的Web伺服器是Apache和Microsoft的Internet資訊伺服器(Internet Information Server,ⅡS)。

3、Internet上的伺服器也稱為Web伺服器,是一臺在Internet上具有獨立IP地址的計算機,可以向Internet上的客戶機提供WWW、Email和FTP等各種Internet服務。

什麼是WEB伺服器

Web伺服器是指駐留於因特網上某種型別計算機的程式。當Web瀏覽器(使用者端)連到伺服器上並請求檔案時,伺服器將處理該請求並將檔案傳送到該瀏覽器上,附帶的資訊會告訴瀏覽器如何檢視該檔案(即檔案型別)。伺服器使用HTTP(超文字傳輸協定)進行資訊交流,這就是人們常把它們稱為HTTPD伺服器的原因。

Web伺服器不僅能夠儲存資訊,還能在使用者通過Web瀏覽器提供的資訊的基礎上執行指令碼和程式。

Web伺服器的內容

⑴應用層使用HTTP協定。

⑵HTML檔案格式。

⑶瀏覽器統一資源定位器(URL)。

1、WWW簡介

WWW 是 World Wide Web (環球資訊網)的縮寫,也可以簡稱為 Web,中文名字為「全球資訊網」。它起源於1989年3月,由歐洲量子物理實驗室 CERN(the European Laboratory for Particle Physics)所發展出來的主從結構分散式超媒體系統。通過全球資訊網,人們只要通過使用簡單的方法,就可以很迅速方便地取得豐富的資訊資料。由於使用者在通過 Web 瀏覽器存取資訊資源的過程中,無需再關心一些技術性的細節,而且介面非常友好,因而 Web 在Internet 上一推出就受到了熱烈的歡迎,走紅全球,並迅速得到了爆炸性的發展。

2、WWW的發展和特點

長期以來,人們只是通過傳統的媒體(如電視、報紙、雜誌和廣播等)獲得資訊。但隨著計算機網路的發展,人們想要獲取資訊,已不再滿足於傳統媒體那種單方面傳輸和獲取的方式,而希望有一種主觀的選擇性。現在,網路上提供各種類別的資料庫系統,如文獻期刊、產業資訊、氣象資訊、論文檢索等等。由於計算機網路的發展,資訊的獲取變得非常及時、迅速和便捷。

到了1993年,WWW 的技術有了突破性的進展,它解決了遠端資訊服務中的文字顯示、資料連線以及影象傳遞的問題,使得 WWW 成為 Internet 上最為流行的資訊傳播方式。現在,Web 伺服器成為 Internet 上最大的計算機群,Web 檔案之多、連結的網路之廣,令人難以想象。可以說,Web 為 Internet 的普及邁出了開創性的一步,是近年來 Internet 上取得的最激動人心的成就。

WWW 採用的是瀏覽器/伺服器結構,其作用是整理和儲存各種WWW資源,並響應使用者端軟體的請求,把客戶所需的資源傳送到 Windows 95(或Windows98)、Windows NT、UNⅨ 或 Linux 等平臺上。

使用最多的 web server 伺服器軟體有兩個:微軟的資訊伺服器(iis),和Apache。

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

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頁面中返回。網站可以有很多種方式來實現這種功能。我要介紹一個不使用應用程式伺服器的情景和一個使用應用程式伺服器的情景。觀察一下這兩中情景的不同會有助於你瞭解應用程式伺服器的功能。

情景1:不帶應用程式伺服器的Web伺服器

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

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

情景2:帶應用程式伺服器的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)來提供應用程式邏輯的。

警告(Caveats)

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

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


IT145.com E-mail:sddin#qq.com