六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

認知Web服務器

[摘要]在許多用戶看來,一個Web網站的成敗主要在于它所提供的內容和功能,殊不知支持這些內容和功能的Web服務器才是真正的幕后英雄。據統計,全世界已有500多萬個網站。每個網站的后面都運行著一個Web服務器,那么什么是Web服務器?它是怎樣工作的?......   從C/S到Web   最早的網絡系統是簡...
在許多用戶看來,一個Web網站的成敗主要在于它所提供的內容和功能,殊不知支持這些內容和功能的Web服務器才是真正的幕后英雄。據統計,全世界已有500多萬個網站。每個網站的后面都運行著一個Web服務器,那么什么是Web服務器?它是怎樣工作的?......

  從C/S到Web
  最早的網絡系統是簡單的主機/終端系統,所有的應用程序都由主機完成,終端只是運行服務器上相應的程序。PC時代的到來,使計算機網絡和計算機應用得到了很大的發展,由于PC價格的不斷下降和性能的不斷提高,面向終端的大型主機的應用領域越來越少。特別是網絡操作系統如NetWare和Windows NT的興起,以及網絡數據庫系統的出現,開辟了網絡應用的新模式——C/S(Client/Server-客戶/服務器)模式。C/S模式是一種兩層結構的系統,第一層是在客戶機上處理表示邏輯與業務邏輯,第二層則是通過網絡運行的數據庫等服務器系統。C/S模式將事務分開進行處理,實現了網絡的分布式計算,很長時間里也幫助企業實現了局域網建設,完善了企業內部業務管理,提高了工作效率。然而C/S模式在系統的集成與維護、操作界面一致性、系統的擴展性等方面都存在明顯的局限性,所以就象主機/終端式網絡被C/S模式的網絡系統所取代一樣,在Internet/Intranet技術環境里,也會出現更新的系統模式。

  基于Web技術的Internet/Intranet近年來已經得到了廣泛的應用,Intranet是以TCP/IP協議為基礎、以Web為核心的企業內部網,用戶通過低成本、簡單易用的客戶瀏覽器就能隨時隨地到企業的Web站點上查閱自己所需的數據。瀏覽器客戶端操作界面的一致性避免了C/S模式客戶端程序的多樣性,而服務器端的開放和基于標準的連接方案使企業很方便地通過Internet同外界聯系;同時,Web信息動態的、交互式的發布方式從根本上改變了企業的服務質量,增加了企業的商業機會。


  圖1 Web三層結構

  在三層結構的Web技術中,數據庫不是直接向每個客戶機提供服務,而是與Web服務器溝通,實現了對客戶信息服務的動態性、實時性和交互性。這種功能是通過諸如CGI、ISAPI、NSAPI以及Java創建的服務器應用程序實現的。如圖1所示。

  什么是Web服務器(Web Server)
  Web技術的獨特之處是采用超鏈接和多媒體信息。Web服務器使用超文本標記語言(HTML-HyperText Marked Language)描述網絡的資源,創建網頁,以供Web瀏覽器閱讀。HTML文檔的特點是交互性。不管是一般文本還是圖形,都能通過文擋中的鏈接連接到服務器上的其他文檔,從而使客戶快速地搜尋他們想要的資料。HTML網頁還可提供表單供用戶填寫并通過服務器應用程序提交給數據庫。這種數據庫一般是支持多媒體數據類型的。

  Web瀏覽器(Web Browser)是一個用于文檔檢索和顯示的客戶應用程序,并通過超文本傳輸協議HTTP(HyperText Transfer Protocol)與Web服務器相連。通用的、低成本的瀏覽器節省了兩層結構的C/S模式客戶端軟件的開發和維護費用。目前,流行的Internet Explorer和Netscape Navigator除提供基本的文檔檢索、顯示和導航特性外,還支持HTML的高級顯示(如表和幀)以及ActiveX、Java、JavaScript等特性。

  Web服務器是怎樣工作的
  在許多用戶看來,一個Web網站的成敗主要在于它所提供的內容和功能,殊不知支持這些內容和功能的Web服務器才是真正的幕后英雄。那么,一個Web服務器是怎樣工作的呢?

  幾年前,當Web服務器剛剛出現的時候,它所支持的應用只是簡單的HTML文件和圖像的瀏覽,當Web服務器接到一個對Web頁面的請求,如http://www.ccidnet.com.index.html,就會通過URL(Uniform Resource Locator-統一資源定位器)定位到相應的宿主文件服務器上,并找到相應的文件index.html,然后從宿主文件服務器上下載該文件并通過HTTP協議把它傳輸給Web瀏覽器(Web Browser)。當然,這只是一個基礎功能,Web服務器同Web瀏覽器之間的關系遠非這樣簡單。Web應用的最重要的一個擴展是動態內容的引入。例如,Web服務器可以根據用戶輸入的請求,去直接或間接地創建Web網頁,然后返回給Web瀏覽器。最早實現動態內容應用的方法是通過CGI(Comman Gateway Interface公共網關接口),它對Web服務器上程序的運行及Web服務器同Web瀏覽器之間動態內容的傳輸有一個基本的定義。如圖2 所示。

  Web應用的另一個進展是HTTPS(HyperText Transmission Protocol, Secure安全超文本傳輸協議)的出現,這種協議保證了Web服務器和Web瀏覽器之間的通信安全,從而使得電子交易成為可能。

  Web服務器同Web瀏覽器之間的通信是通過HTTP協議進行的,那么,什么是HTTP協議?簡單說,HTTP協議是Web瀏覽器和Web服務器之間的應用層協議,它基于TCP/IP協議,是通用的、無狀態的、面向對象的協議。它的作用原理包括四個步驟:


  圖2 CGI定義圖

  連接:Web瀏覽器與Web服務器建立連接,打開一個稱為socket(套接字)的虛擬文件,此文件的建立標志著連接成功。

  請求:Web瀏覽器通過socket向Web服務器提交請求。

  應答:Web瀏覽器提交請求后,通過HTTP協議傳送給Web服務器。Web服務器接到后,進行事務處理,處理結果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面。

  關閉連接:當應答結束后,Web瀏覽器與Web服務器必須斷開,以保證其它Web瀏覽器能夠與Web服務器建立連接。

  這樣,Web服務器的處理過程包括了一個完整的邏輯階段:接受連接——產生靜態或動態內容并把它們傳回瀏覽器——關閉連接——接受下一個連接,如此進行下去?梢韵胂,在訪問者多的情況下,服務器必然會應接不暇。解決這個問題可以借助兩種技術:多線程和多進程。Web服務器支持Unix系統的端口監視模塊(一種多進程的模式)、多線程、多進程或兩種技術的混合。

  有了連接,Web服務器怎樣向Web瀏覽器提供內容呢?這里的關鍵是內容必須能為瀏覽器識別并且表現出來。這其中決定如何顯示內容的主要機制是MIME(Multiple Purpose Internet Mail Extension-多用途因特網郵件擴展)類型,MIME會告訴Web瀏覽器什么樣的文檔將被發送,而且,這種類型的鑒別并不局限于簡單的圖象文檔和HTML文檔。例如,Apache WebServer 的mine.type配置文件中有370種缺省的MIME類型,而且這還不是MIME類型的全部。MIME類型通過與文件后綴相關的類型/子類型語法來區分,例如,包含MPEG視頻內容的文件會有mpeg、mpg或mpe的后綴。

  Web服務器的作用最終體現在對內容特別是動態內容的提供上,這也是Web服務器同應用服務器的根本不同,Web服務器主要負責同Web瀏覽器交互時提供動態產生的HTML文檔(除了提供HTML文檔服務外,Web服務器還提供諸如XML格式的應用數據,也就是說,Web服務器不僅僅提供HTML文檔,還可以在更大的范圍內與各種數據源建立連接,為Web瀏覽器提供更豐富的內容。)

  實現Web動態內容的技術有很多,第一種是CGI,它根據用戶輸入的請求動態地傳送HTML數據。CGI并不是開發語言,它只是能夠利用為它編寫的程序來實現Web服務器的一種協議。由于每一次對于動態內容的請求都需要啟動一個新的CGI程序,因而會增加Web服務器的負擔,所以CGI的一個很大的缺陷是容易影響Web服務器的速度。

  Microsoft ASP(Active Server Pages-動態服務器頁面)技術由嵌入在IIS里的VBScript解釋器構成,同時它還支持多種腳本語言,包括JavaScript、PerlScript以及VBScript,以COM為基礎,它可以很容易地訪問其他服務器的軟件組件。

  PHP象JSP和ASP技術一樣是由一套放在HTML文檔里的附加的代碼標記組成。不同之處是它專為開發Web網頁而用,所以用它開發的應用會比用VBScript或JSP等開發的相應的應用更為簡潔。

  今天所有的Web服務器都支持Perl的加速解決方案。Apache的mod_perl免費解決方案就把Perl嵌入了Apache服務器。這樣不僅提高了Perl代碼的解釋速度,而且由于mod_perl緩存作用,代碼的執行效率也會有很大的提高。Mod_perl還同Apache緊密相連,因此Perl開發人員可以象C語言開發人員編寫底層的Apache API程序一樣控制Web服務器的工作。

  在系統運行時,Web服務器往往要支撐大量而又密集的用戶點擊和對動態內容的需求,所以即使再高檔的服務器設備,面對不斷增加的用戶,單位時間內所支持的訪問量也是會有一個限度,尤其是對于動態內容較多的情況,因為動態內容的應用需要頻繁地調用數據庫的數據和應用程序,會占用大量的服務器資源。這時就需要在多個服務器設備之間或多個站點之間分散服務器的負載。

  負載均衡的方法有很多,最簡單的方法是在不同的服務器之間分配網站的內容。例如,在一個服務器上存放靜態HTML頁面,另一個上面存放圖象文件,而在第三臺上運行所有的CGI程序。不過很明顯,這種方法效率不會很高,因為它無法在主機之間實現自動的內容分配,如果其中某一方面的內容過多,仍然會形成負載瓶頸。

  DNS負載均衡(Domain Name Server-域名服務器)的基本方法是把同一站點的不同的拷貝放在相同的物理服務器上,然后,DNS服務器可以返回多個IP地址,方法是DNS服務器既可以返回域名的多個IP地址,也可以對同一個DNS請求返回不同的IP地址。由于難以確定一個客戶端對應的是哪一個IP地址,所以DNS只能提供基本的負載均衡服務。而且,由于DNS請求留在了客戶端和其它的服務器的緩存里,同一個客戶端會繼續訪問同一個Web服務器。所以就有可能造成一大批頻繁上網的用戶用一個IP地址,而另外較少上網的用戶卻訪問另一個IP地址,從而造成分配不均。還有一個問題是DNS的緩存并不是持續激活的,這就可能造成當一個客戶端正在使用一個Web站點時,會結束對該站點其它IP地址的訪問。這會給動態網站帶來問題,特別是對于需要接受并存儲客戶端的數據的情況。

  軟、硬件的負載均衡方法與DNS負載均衡相似,但網站只發布一個IP地址,專門設置一臺機器接受針對這個IP地址的HTTP請求并把這些請求分發給網站的各個服務器。這種分發通常發生在TCP/IP路由的層次上,可以透明地把這個單一的源/目標IP地址映射到一個特定的服務器上。這種技術可以通過軟件或硬件的方式實現。硬件方式的方案效率較高,成本也較高。因為其負載均衡功能可以在Web服務器之間均衡地分配訪問請求,所以這種方式比DNS方式要好。而且,這種方式可以不斷地監測Web服務器,如果某一個服務器出現故障或問題,則可以把請求動態地重新定向到功能相同的服務器上。

  反向代理Reverse Proxying也是一種簡便易行的辦法,代理截獲客戶端的請求,把請求轉發給Web服務器,再把服務器的回復傳給客戶端并把內容放入自己的緩存里。這樣,同樣內容的訪問就不必直接由服務器處理,可以在很大程度上減輕服務器的負擔。

  負載均衡是一種橫向擴展服務器性能的方法,我們還可以通過提高Web服務器本身性能,即縱向的方法來提高服務器的性能。最明顯的一種方式是增加服務器的資源,包括硬盤速度、內存和CPU的處理能力。CPU的處理能力對于內容服務很重要,但主要是對動態網站起作用,因為動態網站需要運行相應的程序,需要花費大量的系統資源。單純提高硬盤的存取速度或增加內存也是簡單易行的方法。代理的方法前面已介紹過,有一點需要補充的是Web服務器上的數據同數據庫服務器或文件服務器的數據的存儲結構是不同的,數據庫等的數據結構的設置是為了內容檢索的方便,而Web服務器的目錄結構則為了便于用戶查看進行優化組織,那么代理的功能之一就是提供這種數據結構的轉化。

  最后一方面,很多網站的信息傳輸都需要SSL加密,然而建立SSL連接需要占用大量的系統資源,所以還需要采用SSL加速的技術。有很多第三方廠商開發的SSL加速卡產品是不錯的選擇,這些產品價格不貴,而且由于Web服務器的SSL密鑰通常存在卡上,可以避免非法入侵者從網站上竊取SSL密鑰。

  由于Internet/Intranet應用的特點,Web服務器的安全性同樣是一個關鍵的問題。Web服務器的安全性有兩個層次,一是數據流的安全,防止被第三方看到或惡意修改;二是內容的安全,即只有經過授權和通過認證的用戶才能看和修改信息。

  我們前面提到過,由“https”打頭的URL利用SSL(現在所說的Tranport Level Security——TLS)算法,這種算法的基本原理是在Web服務器和Web瀏覽器之間建立安全的、加密的連接。這種情況下,SSL保護的是兩種數據,一是發向Web服務器的數據,例如用戶的姓名和信用卡密碼;二是從Web服務器檢索的秘密的數據,例如拍賣網站上向用戶傳送的價格信息等。授權和認證是也是Web服務器常用的安全技術,實際工作時,Web服務器會向Web瀏覽器發送一個信息詢問用戶的名字和密碼并讓用戶填寫,以此確認用戶的正確身份。

  通過前面的介紹,我們已經掌握了很多關于Web服務器的知識。但我們都知道,一個Web應用只有Web服務器是不夠的,它需要同應用服務器協同工作,才能完成一個Web站點的功能,那么Web服務器同應用服務器有什么不同?簡單說,Web服務器專門用來向瀏覽器提供HTML文檔和圖象數據,Web服務器上的應用程序也是用來產生HTML文檔和圖象數據的,這一點不同于應用服務器的應用程序,應用服務器則只包含應用的業務邏輯,負責處理業務應用,而不包括數據庫和用戶界面程序。

  多數情況下,應用服務器作為三層結構的中間層存在。通常,在三層結構中,其它兩層分別是用戶界面和數據庫/數據存儲。需要說明的是,上述區分只是功能上的,隨著數據標準技術的發展,特別是由于XML的出現,打破了Internet上各種數據采集協議和開發語言之間的界限,Web服務器和應用服務器也都可以處理對方的數據,具有對方的功能。這種情況下,我們在選用服務器時可能會碰到困難,是選擇Web服務器還是應用服務器?是不是用一個服務器解決兩方面問題就可以了?實際應用中,還是應該把二者區分開來,使它們專注于自己的功能。例如,雖然應用服務器很容易具有提供Web網頁的功能,但是卻很難給應用服務器配置所有的Web功能。把兩種服務分開還可以提高兩種服務器的性能,降低維護的復雜性,例如由于Web服務器要頻繁而又大量地傳送HTML和圖象數據,所以它們一般都需要較高的I/O速度,而應用服務器要對數據做大量的處理,因此需要較大的CPU的處理能力。另外,把二者區分開來有助于系統的穩定性,因為二者的性能指標不一樣,所以在調試和配置的時候要求也不一樣,把它們混在一起會增加維護難度。





主站蜘蛛池模板: 欧美一级做一a做片性视频 欧美一级做性受 | 天天摸天天碰天天碰 | 日韩精品永久免费播放平台 | 亚洲色视频在线播放网站 | 日韩国产有码在线观看视频 | 综合图区亚洲 | 日韩观看| 欧美一级艳片视频免费观看 | 四虎自拍 | 亚洲一区二区免费在线观看 | 欧美一级精品 | 日本亚洲欧美美色 | 三级自拍视频 | 热热影院 | 青青草成人免费在线视频 | 欧美性视频一区二区三区 | 欧美一级乱理片免费观看 | 亚洲人成在线观看男人自拍 | 天堂8中文在线最新版在线 天堂8中文在线bt | 性xxxxx免费视频播放 | 日韩在线 中文字幕 | 天天舔天天爱 | 一级女人毛片人一女人 | 日本免费网站在线观看 | 亚洲第五页 | 青娱乐精品 | 日日夜夜欧美 | 四虎影永久在线高清免费 | 四虎永久在线日韩精品观看 | 日韩在线播放视频 | 亚洲国产一| 四虎在线观看免费永久 | 青青草原亚洲视频 | 最近中文字幕无吗高清免费视频 | 青娱乐国产精品 | 青青热久久综合网伊人 | 日日插日日操 | 青草青青产国视频在线 | 五福影院在线观看 | 欧美午夜a级限制福利片 | 天天射天天操天天色 |