WEB伺服器

WEB伺服器

Web伺服器一般指網站伺服器,是指駐留于因特網上某種類型電腦的程式,可以向流覽器等Web客戶端提供文檔。你可以放置網站檔案,讓全世界流覽;可以放置資料檔案,讓全世界下載。目前最主流的三個Web伺服器是Apache Nginx IIS。

  • 中文名稱
    WEB伺服器
  • 外文名稱
    Web Server

​簡要介紹

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伺服器不僅能夠存儲信息,還能在使用者通過Web流覽器提供的信息的基礎上運行腳本和程式。

必備要求

作為Web伺服器,首先要保證不間斷電源,機房要控製好相對溫度和濕度。這裏有額外配置的UPS不間斷電源和穩壓器,此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)等等),而且給最佳產品的選取留有餘地。

詞義辨析

什麽是網路伺服器

網路伺服器是網路環境下為客戶提供某種服務的專用電腦。

安全

設定策略

盜用賬號、緩沖區溢出以及執行任意命令是Web伺服器比較常見的安全漏洞。黑客攻擊、蠕蟲病毒以及木馬是因特網比較常見的安全漏洞。口令攻擊、拒絕服務攻擊以及IP欺騙是黑客攻擊比較常見的類型。隨著網路技術的不斷發展,Web伺服器面臨著許多安全威脅,直接影響到Web伺服器的安全。因此,加強Web伺服器的安全防護是一項迫切需要的解決的時代課題。筆者結合多年的工作實踐,認為可從以下3個方面入手來加強Web伺服器的安全防護。

第一,加強Web伺服器的安全設定。

以Linux為操作平台的Web伺服器的安全設定策略,能夠有效降低伺服器的安全隱患,以確保Web伺服器的安全性,主要包括:登錄有戶名與密碼的安全設定、系統口令的安全設定、BIOS的安全設定、使用SSL通信協定、命令存儲的修改設定、隱藏系統信息、啓用日志記錄功能以及設定Web伺服器有關目錄的許可權等[3]。

第二,加強網際網路的安全防範。

Web伺服器需要對外提供服務,它既有域名又有公網的網址,顯然存在一些安全隱患。所以,可給予Web伺服器分配私有的地址,並且運用防火牆來做NAT可將其進行隱藏;同時因為一些攻擊來源于區域網路的攻擊,比如把區域網路電腦和Web伺服器存放在相同的區域網路之內,則在一定程度上會增加很多安全隱患,所以必須把它劃分為不同的虛擬區域網路,運用防火牆的地址轉換來提供相互間的訪問,這樣就大大提高了Web伺服器的安全性和可靠性;把Web伺服器連線至防火牆的DMZ連線埠,將不適宜對外公布的重要信息的伺服器放于內部網路,進而在提供對外的服務的同時,可以最大限度地保護好內部網路[4]。

第三,網路管理員要不斷加強網路日常安全的維護與管理。

要對管理員使用者名稱與密碼定期修改;要對Web伺服器系統的新增使用者情況進行定時核對,並且需要認真仔細了解網路使用者的各種功能;要及時給予更新Web伺服器系統的防毒軟體以及病毒庫,必要時可針對比較特殊的病毒給予安裝專門防毒的程式,同時要定期查殺Web伺服器的系統病毒,定期查看CPU的正常工作使用狀態、後台工作進程以及應用程式,假若發現異常情況需要及時給予妥當處理[5];因為很多木馬與病毒均是運用系統漏洞來進行攻擊的,所以需要不斷自動更新Web伺服器系統,以及定期掃描Web伺服器系統的漏洞。

Web伺服器現在已經成為了病毒、木馬的重災區。不但企業的入口網站被篡改、資料被竊取,而且還成為了病毒與木馬的傳播者。有些Web管理員採取了一些措施,雖然可以保證入口網站的主頁不被篡改,但是卻很難避免自己的網站被當作肉雞,來傳播病毒、惡意外掛程式、木馬等等。這很大一部分原因是管理員在Web安全防護上太被動。他們隻是被動的防御。為了徹底提高Web伺服器的安全,Web安全要主動出擊。

漏洞測試

現在的企業網站做的越來越復雜、功能越來越強。不過這些都不是憑空而來的,是通過代碼堆積起來的。如果這個代碼隻供企業內部使用,那麽不會帶來多大的安全隱患。但是如果放在網際網路上使用的話,則這些為實現特定功能的代碼就有可能成為攻擊者的目標。天眼舉一個簡單的例子。在網頁中可以嵌入SQL代碼。而攻擊者就可以利用這些SQL代碼來發動攻擊,來獲取管理員的密碼等等破壞性的動作。有時候訪問某些網站還需要有某些特定的控制項。使用者在安裝這些控制項時,其實就有可能在安裝一個木馬(這可能訪問者與被訪問者都沒有意識到)。

為此在為網站某個特定功能編寫代碼時,就要主動出擊。從編碼的設計到編寫、到測試,都需要認識到是否存在著安全的漏洞。天眼在日常過程中,在這方面對于員工提出了很高的要求。各個員工必須對自己所開發的功能負責。至少現在已知的病毒、木馬不能夠在你所開發的外掛程式中有機可乘。通過這層層把關,就可以提高代碼編寫的安全性。

持續監控

冰凍三尺、非一日之寒。這就好像人生病一樣,都有一個過程。病毒、木馬等等在攻擊Web伺服器時,也需要一個過程。或者說,在攻擊取得成功之前,他們會有一些試探性的動作。如對于一個採取了一定安全措施的Web伺服器,從攻擊開始到取得成果,至少要有半天的時間。如果Web管理員對伺服器進行了全天候的監控。在發現有異常行為時,及早的採取措施,將病毒與木馬阻擋在門戶之外。這種主動出擊的方式,就可以大大的提高Web伺服器的安全性。

現在維護的Web伺服器有好幾十個。現在專門有一個小組,來全天候的監控伺服器的訪問。平均每分鍾都可以監測到一些試探性的攻擊行為。其中99%以上的攻擊行為,由于伺服器已經採取了對應的安全措施,都無功而返。不過每天仍然會遇到一些攻擊行為。這些攻擊行為可能是針對新的漏洞,或者採取了新的攻擊方式。在伺服器上原先沒有採取對應的安全措施。如果沒有及時的發現這種行為,那麽他們就很有可能最終實現他們的非法目的。相反,現在及早的發現了他們的攻擊手段,那麽我們就可以在他們採取進一步行動之前,就在伺服器上關掉這扇門,補上這個漏洞。

在這裏也建議,企業使用者在選擇網際網路Web伺服器提供商的時候,除了考慮性能等因素之外,還要評估服務提供商能否提供全天候的監控機製。在Web安全上主動出擊,及時發現攻擊者的攻擊行為。在他們採取進一步攻擊措施之前,就他們消除在萌芽狀態。

設定蜜罐

在軍隊中,有時候會給軍人一些“偽裝”,讓敵人分不清真偽。其實在跟病毒、木馬打交道時,本身就是一場無硝煙的戰爭。為此對于Web伺服器採取一些偽裝,也能夠將攻擊者引向錯誤的方向。等到供給者發現自己的目標錯誤時,管理員已經鎖定了攻擊者,從而可以及早的採取相應的措施。天眼有時候將這種主動出擊的行為叫做蜜罐效應。簡單的說,就是設定兩個伺服器。其中一個是真正的伺服器,另外一個是蜜罐。現在需要做的是,如何將真正的伺服器偽裝起來,而將蜜罐推向公眾。讓攻擊者認為蜜罐伺服器才是真正的伺服器。要做到這一點的話,可能需要從如下幾個方面出發。

一是有真有假,難以區分。如果要瞞過攻擊者的眼睛,那麽蜜罐伺服器就不能夠做的太假。天眼在做蜜罐伺服器的時候,80%以上的內容都是跟真的伺服器相同的。隻有一些比較機密的信息沒有防治在蜜罐伺服器上。而且蜜罐伺服器所採取的安全措施跟真的伺服器事完全相同的。這不但可以提高蜜罐伺服器的真實性,而且也可以用來評估真實伺服器的安全性。一舉兩得。

二是需要有意無意的將攻擊者引向蜜罐伺服器。攻擊者在判斷一個Web伺服器是否值得攻擊時,會進行評估。如評估這個網站的流量是否比較高。如果網站的流量不高,那麽即使被攻破了,也沒有多大的實用價值。攻擊者如果沒有有利可圖的話,不會花這麽大的精力在這個網站伺服器上面。如果要將攻擊者引向這個蜜罐伺服器的話,那麽就需要提高這個蜜罐伺服器的訪問量。其實要做到這一點也非常的容易。現在有很多用來互動流量的團隊。隻要花一點比較小的投資就可以做到這一點。

三是可以故意開一些後門讓攻擊者來鑽。作為Web伺服器的管理者,不僅關心自己的伺服器是否安全,還要知道自己的伺服器有沒有被人家盯上。或者說,有沒有被攻擊的價值。此時管理者就需要知道,自己的伺服器一天被攻擊了多少次。如果攻擊的頻率比較高,管理者就高興、又憂慮。高興的是自己的伺服器價值還蠻大的,被這麽多人惦記著。憂慮的是自己的伺服器成為了眾人攻擊的目標。就應該抽取更多的力量來關註伺服器的安全。

攻防測試

俗話說,靠人不如靠自己。在Web伺服器的攻防戰上,這一個原則也適用。天眼建議,如果企業對于Web服務的安全比較高,如網站伺服器上有電子商務交易平台,此時最好設定一個專業的團隊。他們充當攻擊者的角色,對伺服器進行安全性的測試。這個專業團隊主要執行如下幾個任務。

一是測試Web管理團隊對攻擊行為的反應速度。如可以採用一些現在比較流行的攻擊手段,對自己的Web伺服器發動攻擊。當然這個時間是隨機的。預先Web管理團隊並不知道。現在要評估的是,Web管理團隊在多少時間之內能夠發現這種攻擊的行為。這也是考驗管理團隊全天候跟蹤的能力。一般來說,這個時間越短越好。應該將這個時間控製在可控的範圍之內。即使攻擊最後沒有成功,Web管理團隊也應該及早的發現攻擊的行為。畢竟有沒有發現、與最終有沒有取得成功,是兩個不同的概念。

二是要測試伺服器的漏洞是否有補上。畢竟大部分的攻擊行為,都是針對伺服器現有的漏洞所產生的。現在這個專業團隊要做的就是,這些已發現的漏洞是否都已經打上了安全補丁或者採取了對應的安全措施。有時候我們都沒有發現的漏洞是無能為力,但是對于這些已經存在的漏洞不能夠放過。否則的話,也太便宜那些攻擊者了。

診斷方法

步驟1:發生了什麽事

系統管理員必須肩負起分析和判斷Web伺服器宕機原因的責任。需要解決如下的問題:

  • 是否是斷電,發電機測試以及其他類似問題影響了整體物理環境?
  • 和Web伺服器的通信是否已經完全被阻斷,還是某些IP段依舊可以使用?
  • 是否還可以管理伺服器?
  • 日志中是否有異常記錄?

這些隻是少部分管理員們需要立即回答的問題,在深入診斷問題之前,先解決上述問題。

步驟2:最簡單的解決方案往往是最好的

有很多時候會陷入診斷高級問題的誤區,分析各種可能的技術問題和疑難雜症。而實際上,退一步想,從巨觀角度思考問題,可能解決已花費無數工時和成本卻還未攻克的技術難題。例如,主機通電了嗎,或者是否有人無意間碰掉了電源線?如果機器確實已經通電,但沒有任何網路連線,需要檢查網線或者光纖是否沒有接上或者松動。是的,這些看似明顯低級錯誤的解決方法,認為都不可能發生,但任何有經驗的系統管理員會告訴你,這些狀況的發生頻率遠比想的要多的多。

步驟3:基本故障處理方法沒有效果怎麽辦

現在已經檢查了所有電纜和其他外圍設備,可以試著使用ping命令探測設備狀況。幸運的是,ping命令是所有平台通用的,也是最簡單的。如果可以在區域網路內ping通伺服器,接著可以試試從區域網路外ping伺服器進行檢測。這樣做可以迅速判斷問題是否產生在交換和路由層面,而不是伺服器級別。此外,如果Web伺服器已經虛擬化,試著ping物理伺服器自己的真實IP。這樣可以幫助進一步隔離問題。如果完全無法ping同伺服器,而且也已經確定完全檢查了網路連線,那麽就需要進行更深入的分析了。

步驟4:使盡渾身解數,伺服器依然宕機

已經檢查過網線。也試過了ping伺服器,依舊無法訪問伺服器。好訊息是,已經可以將問題定位到物理伺服器或作業系統本身了。換句話說,已經可以開始集中經理對現存的問題進行排查。

接下來,才去從底層到高層的方式來逐層檢查問題,首先檢查網路接口和在地網路配置是否正常。DHCP是否啓動?Web伺服器是否指向正確的DNS伺服器?如果是這樣,可以根據使用的作業系統平台,檢查Web服務是否正常開啓。在Windows環境,需要檢查伺服器是否具有Web服務的角色。在Linux環境下,檢查會更復雜,可以試試查找http相關的檔案或服務來確保伺服器是否正在運行。

步驟5:絕境下需要動用絕招

如果以上方法都不奏效,檢查日志並嘗試查明在Web伺服器宕機時日志中記錄的那些信息。將這些信息發給在故障處理和解決領域更有經驗的專業人士,可能會獲得更多的幫助。同樣的,如果已經確認網路連線不是問題,就可以使用Wireshark抓包工具對網路中傳輸的資料進行抓取分析,以此協助處理問題。

總而言之,伺服器宕機的原因多種多樣。斷電、配置錯誤、防火牆設定錯誤、甚至是來自網際網路的惡意流量,都可能引發源站宕機並讓系統管理員們倆共。所有這些問題都足以讓企業決策者對冗餘解決方案的設計和實施加以重視,同樣的針對故障處理流程的設計和製定,還需要根據企業自身網路的實際情況為依據。

相關信息

大型WEB伺服器

在UNⅨ和LINUX平台下使用最廣泛的免費HTTP伺服器是APACHE伺服器,而Windows平台NT/2000/2003使用ⅡS的WEB伺服器。在選擇使用WEB伺服器應考慮的本身特徵因素有:性能、安全性、日志和統計、虛擬主機、代理伺服器、緩沖服務和集成應用程式等,下面介紹幾種常用的WEB伺服器。

Microsoft ⅡS

Microsoft的Web伺服器產品為Internet Information Server (ⅡS), ⅡS 是允許在公共Intranet或Internet上發布信息的Web伺服器。ⅡS是目前最流行的Web伺服器產品之一,很多著名的網站都是建立在ⅡS的平台上。ⅡS提供了一個圖形介面的管理工具,稱為 Internet服務管理器,可用于監視配置和控製Internet服務。

ⅡS是一種Web服務組件,其中包括Web伺服器、FTP伺服器、NNTP伺服器和SMTP伺服器,分別用于網頁流覽、檔案傳輸、新聞服務和郵件傳送等方面,它使得在網路(包括網際網路和區域網路)上發布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作為擴展Web伺服器功能的編程接口;同時,它還提供一個Internet資料庫連線器,可以實現對資料庫的查詢和更新。

IBM WebSphere  

WebSphere Application Server 是 一 種功能完善、開放的Web應用程式伺服器,是IBM電子商務計畫的核心部分,它是基于 Java 的套用環境,用于建立、部署和管理 Internet 和 Intranet Web 應用程式。這一整套產品進行了擴展,以適應 Web 應用程式伺服器的需要,範圍從簡單到高級直到企業級。

WebSphere 針對以 Web 為中心的開發人員,他們都是在基本 HTTP伺服器和 CGI 編程技術上成長起來的。IBM 將提供 WebSphere 產品系列,通過提供綜合資源、可重復使用的組件、功能強大並易于使用的工具、以及支持 HTTP 和 ⅡOP 通信的可伸縮運行時環境,來幫助這些使用者從簡單的 Web 應用程式轉移到電子商務世界。

BEA WebLogic

BEA WebLogic Server 是一種多功能、基于標準的web套用伺服器,為企業構建自己的套用提供了堅實的基礎。各種套用開發、部署所有關鍵性的任務,無論是集成各種系統和資料庫,還是提交服務、跨 Internet 協作,起始點都是 BEA WebLogic Server。由于 它具有全面的功能、對開放標準的遵從性、多層架構、支持基于組件的開發,基于 Internet 的企業都選擇它來開發、部署最佳的套用。

BEA WebLogic Server 在使套用伺服器成為企業套用架構的基礎方面繼續處于領先地位。BEA WebLogic Server 為構建集成化的企業級套用提供了穩固的基礎,它們以 Internet 的容量和速度,在連網的企業之間共享信息、提交服務,實現協作自動化。

Apache

Apache仍然是世界上用的最多的Web伺服器,市場佔有率達60%左右。它源于NCSAhttpd伺服器,當NCSA WWW伺服器項目停止後,那些使用NCSA WWW伺服器的人們開始交換用于此伺服器的補丁,這也是apache名稱的由來(pache 補丁)。世界上很多著名的網站都是Apache的產物,它的成功之處主要在于它的原始碼開放、有一支開放的開發隊伍、支持跨平台的套用(可以運行在幾乎所有的Unix、Windows、Linux系統平台上)以及它的可移植性等方面。

Tomcat

Tomcat是一個開放原始碼、運行servlet和JSP Web套用軟體的基于Java的Web套用軟體容器。Tomcat Server是根據servlet和JSP規範進行執行的,因此我們就可以說Tomcat Server也實行了Apache-Jakarta規範且比絕大多數商業套用軟體伺服器要好。

Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技術的標準實現,是基于Apache許可證下開發的自由軟體。Tomcat是完全重寫的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代碼,特別是Apache服務適配器。隨著Catalina Servlet引擎的出現,Tomcat第四版號的性能得到提升,使得它成為一個值得考慮的Servlet/JSP容器,因此目前許多WEB伺服器都是採用Tomcat。

小型WEB伺服器

【nginx】 

* 支持通用語言接口,如php、python、perl等

* 支持正向和方向代理、虛擬主機、url重寫、壓縮傳輸等

* nginx的模組都是靜態編譯的,對fcgi的支持非常好,在處理連結的的方式上nginx支持epoll。

【 micro_httpd - really small HTTP server】

特點:

* 支持安全的 .. 上級目錄過濾

* 支持通用的MIME類型

* 支持簡單的目錄

* 支持目錄列表

* 支持使用 index.html 作為首頁

* Trailing-slash redirection

* 程式總共代碼才200多行

這個httpd適合學習簡單的Web Server編寫學習,因為它隻有一個簡單的架構,隻能夠處理簡單的靜態頁,可以考慮用來放靜態頁。

【 mini_httpd - small HTTP server 】

特點:

* 支持GET、HEAD、POST方法

* 支持CGI功能

* 支持基本的驗證功能

* 支持安全 .. 上級目錄功能

* 支持通用的MIME類型

* 支持目錄列表功能

* 支持使用 index.html,index.htm,index.cgi 作為首頁

* 支持多個根目錄的虛擬主機

* 支持標準日志記錄

* 支持自定義錯誤頁

* Trailing-slash redirection

mini_httpd 也是相對比較適合學習使用,大體實現了一個Web Server的功能,支持靜態頁和CGI,能夠用來放置一些個人簡單的東西,不適宜投入生產使用。

【 thttpd - tiny/turbo/throttling HTTP server 】

thttpd中是一個簡單,小型,輕便,快速和安全的http伺服器.

簡單:它能夠支持HTTP/1.1協定標準,或者超過了最低水準

小巧:它具有非常少的運行時間,因為它不fork子進程來接受新請求,並且非常謹慎的分配記憶體。

便攜:它能夠在大部分的類Unix系統上運行,包括FreeBSD,SunOS 4,Solaris 2,BSD/OS,Linux,OSF等等

快速:它的速度要超過主流的Web伺服器(Apache,NCSA,Netscape),在高負載情況下,它要快的多

安全:它努力的保護主機不受到攻擊,不中斷伺服器

thttpd 類似于lighttpd,對于並發請求不使用fork()來派生子進程處理,而是採用多路復用(Multiplex)技術來實現。因此效能很好。同時它還有一個特點就是基于URL的檔案流量限製,這對于下載的流量控製而言是非常方便的。象Apache就必須使用外掛程式實現,效率較thttpd低。

thttpd跟lighttpd類似,適合靜態資源類的服務,比如圖片、資源檔案、靜態HTML等等的套用,性能應該比較好,同時也適合簡單的CGI套用的場合。

【 lighttpd - light footprint + httpd = LightTPD 】

Lighttpd是一個德國人領導的開源軟體,其根本的目的是提供一個專門針對高性能網站,安全、快速、兼容性好並且靈活的web server環境。具有非常低的記憶體開銷,cpu佔用率低,效能好,以及豐富的模組等特點。

lighttpd 是眾多OpenSource輕量級的web server中較為優秀的一個。支持FastCGI,CGI,Auth,輸出壓縮(output compress),URL重寫,Alias等重要功能,而Apache之所以流行,很大程度也是因為功能豐富,在lighttpd上很多功能都有相應的實現了,這點對于apache的使用者是非常重要的,因為遷移到lighttpd就必須面對這些問題。

實用起來lighttpd確實非常不錯,apache主要的問題是密集並發下,不斷的fork()和切換,以及較高(相對于 lighttpd而言)的記憶體佔用,使系統的資源幾盡枯竭。而lighttpd採用了Multiplex技術,代碼經過最佳化,體積非常小,資源佔用很低,而且反應速度相當快。

利用apache的rewrite技術,將繁重的cgi/fastcgi任務交給lighttpd來完成,充分利用兩者的優點,現在那台伺服器的負載下降了一個數量級,而且反應速度也提高了一個甚至是2個數量級!

lighttpd 適合靜態資源類的服務,比如圖片、資源檔案、靜態HTML等等的套用,性能應該比較好,同時也適合簡單的CGI套用的場合。

【 SHTTPD - Simple HTTPD 】

Shttpd是另一個輕量級的web server,具有比thttpd更豐富的功能特徵,支持CGI,SSL,cookie,MD5識別,還能嵌入(embedded)到現有的軟體裏。最有意思的是不需要配置檔案! 由于shttpd可以嵌入其他軟體,因此可以非常容易的開發嵌入式系統的web server,官方網站上稱shttpd如果使用uclibc/dielibc(libc的簡化子集)則開銷將非常非常低。

特點:

* 小巧、快速、不膨脹、無需安裝、簡單的40KB的exe檔案,隨意運行

* 支持GET,POST,HEAD,PUT,DELETE 等方法

* 支持CGI,SSL,SSI,MD5驗證,resumed download,aliases,inetd模式運行

* 標準日志格式

* 非常簡單整潔的嵌入式API

* dietlibc friendly. NOT that friendly to the uClibc (*)

* 容易定製運行在任意平台:Windows,QNX,RTEMS,UNⅨ (*BSD,Solaris,Linux)

由于shttpd可以輕松嵌入其他程式裏,因此shttpd是較為理想的web server開發原形,開發人員可以基于shttpd開發出自己的webserver!

發展趨勢

目前,Web伺服器的發展有三個主要趨勢:

1.從HTML到XML(Extensible Markup Language-可擴展標記語言)   

HTML被稱為“第一代Web語言”,如前面的介紹,HTML作為Web的開發語言,對Web套用的發展起到了關鍵性的作用。但是HTML有一個致命的缺點:隻適合于人與電腦的交流,不適合電腦與電腦的交流。HTML通過大量的標記來定義文檔內容的表現方式,它僅僅描述了應如何在Web流覽器頁面上布置文字、圖形,並沒有對Internet的信息含義本身進行描述,而信息又是Web套用中最重要的內容。通過HTML表現出來的文字、圖形內容很容易被人理解,但卻不利于電腦程式去理解。另外,HTML的另一個問題就是它的標記集合是固定的,使用者不能根據自己的需要增加標記;而且各種流覽器的規格不盡相同,要使我們用HTML做的網頁能夠被所有流覽器正常顯示,我們隻能夠使用W3C(全球資訊網協會)規定的標記來建立網頁。

正如前面所說,Web伺服器向Web流覽器提供的信息都是來自有一定結構的資料庫,在資料庫裏,為了檢索和管理的方便,信息按照它本身的意義(如姓名、年齡、工作單位等)被存放在相應的欄位裏,一旦這些資料被調出來,經過CGI、ASP、JSP、PHP等轉換成HTML後,其原來的意義無法轉移到HTML標記中來,使用者也就無法按照信息本來的意義去閱讀。並且,由于作業系統以及資料庫的不同,不同的系統及套用層面之間要想互相理解對方的資料格式是相當困難的。這就需要一種新技術或標準能夠將最初儲存在資料庫伺服器中的原始資料結構在不同的系統層面共享。這種新技術就是XML。

使用XML可以解決上述的難題。W3C對XML作了如下描述:“XML描述了一類被稱為XML文檔的資料對象,並部分描述了處理它們的電腦程式的行為。XML是SGML的一個套用實例。從結構上說,XML文檔遵從SGML文檔標準。”同HTML一樣,XML也是一種基于文本的標記語言,都是從SGML(Standard Generalize Markup Language,標準通用標記語言)發展而來,二者的不同在于:XML可以讓我們根據要表現的文檔,自由地定義標記來表現具有實際意義的文檔內容,例如,我們可以定義〈文檔名稱〉〈/文檔名稱〉這樣具有實際意義的標記。而且XML不像HTML那樣具有固定的標記集合,它實際上是一種定義語言的語言,也就是說使用XML的使用者可以定義無窮的標記來描述文檔中的任何資料元素,將文檔的內容組織成豐富的完整的信息體系。總起來說,XML具有四大特點:便于存儲的資料格式、可擴展性、高度結構化以及方便的網路傳輸,這些特點為我們建立開放、高效、可擴展、個性化的Web套用提供了一個嶄新的起點。

2.從有線到無線

電子商務正在從台式機向著更為廣泛的無線設備發展,Cahners In-Stat市場分析家預測,世界範圍內的無線使用者的人數將會從2000年的2.71億增加到2004年的13億。Aberdeen集團的研究主任Darcy Fowkes認為,採用無線方式進行電子商務的優勢並不僅僅在于方便,它還可以節約公司的財力,而且,移動辦公能使工作更加高效。

然而,由于多種無線網路類型、標記語言、協定和無線設備並存的復雜情況,使得網路內容和資料轉換成能夠被無線設備所識別的格式並不容易。目前,許多企業都在致力于開發能夠把應用程式以及網際網路內容擴展到無線設備上的產品。

例如,IBM新版本的WebSphere Transcoding Publisher 3.5增加和改進了許多新的特徵,可以將企業內部網上的資料翻譯到多種無線設備上。該版本中新的特徵包括對更多的無線設備、資料格式的支持,以及語言翻譯功能。它基于Java架構,能把用HTML和XML等標記語言編寫的應用程式和資料轉換成WML、HDML(Handheld Device Markup Language)和iMode等無線設備所能識別的格式,這樣,通過手持設備就可以訪問網際網路上的信息。

無線設備廠商Mobilize也推出了Mobilize Commerce產品,幫助企業進入無線網路。該軟體可以通過無線連線的方式訪問企業的內部系統,遠程地實現訂單傳送,並進行確認。Mobilize Commerce可以充分利用XML對信息進行格式轉換,以適合于無線設備,這些無線設備包括筆電、個人數位助理、無線電話、網路電話和雙向尋呼等。

3.從無聲到有聲

世界上現在有十億個電話終端,有超過2億的行動電話。而就人自身的交流習慣來看,人們也更願意利用聽和說的口頭的方式進行交流。

目前,文本語音轉換器(TTS,Text to Speech)的研究工作已經取得了很大的進步,實現了自動的語言分析理解,並允許TTS的使用者增加更多的韻律、音調在講話中,使TTS系統的發聲更接近人聲。在自動語音識別系統(ASR)領域裏,自動語音識別系統在從整個詞的模仿匹配,向音素層次的識別系統方向發展。自動語音識別系統的辭彙表由一個基于聲音片斷的字母表構成,而且這種辭彙表是受不同語言限製的。基于這種方式,在一個寬廣的聲音行列裏,講話能被識別系統發現和挑揀出來,並加以識別。並且,在識別一個詞的時候,每一個音素將從系統的輸入中挑揀出來,拼接組合後與已經有的音素和詞語模板進行比較,來產生需要的模板。音素的識別大大減輕了ASR對講話者的依賴性,並且使得它非常容易去建立大型的和容易修改的語音識別字典,從而滿足不同套用市場的需求。

Web語音發展的另一方面是VoiceXML(Voice Extensible Markup Language-語音可擴展標記語言)的進展。VoiceXML的主要目標是要將Web上已有的大量套用、豐富的內容,讓互動式語音介面也能夠全部享受。Web伺服器處理一個來自客戶端套用的請求,這一請求經過了VoiceXML解釋程式和VoiceXML解釋程式語境處理,作為回響,伺服器產生出VoiceXML檔案,在回復當中,要經過VoiceXML解釋程式的處理。VoiceXML 1.0規範基于XML,為語音和電話套用的開發者、服務提供商和設備製造商提供了一個智慧型化的API。VoiceXML的標準化將簡化Web上具有語音回響服務的個性化介面的建立,使人們能夠通過語音和電話訪問網站上的信息和服務,像今天通過CGI腳本一樣檢索中心資料庫,訪問企業內部網,製造新的語音訪問設備。VoiceXML的執行平台上面載入了相應的軟體和硬體,例如,ASR、TTS,從而實現語音的識別以及文本和語音之間的轉化。2000年5月23日,W3C接受了語音可擴展標記語言VoiceXML 1.0作為實例。

目前,IBM、Nokia、Lucent、Motorola等著名廠商都已經開發出相應支持VoiceXML的產品,但現在的ASR和TTS系統大多還不能支持中文。

相關詞條

相關搜尋

其它詞條