Web體系結構

建立Web的願望是易於使用的超文本接口提供通用的文本共享。Web以兩個主要的協議爲基礎,超文本協議HTTP及TCP/IP協議。HTTP用於Web瀏覽器與Web服務器之間的數據交換。瀏覽器使用超文本標記語言HTML,TCP/IP爲網絡傳輸控制協議。在很多方面,HTTP協議是理解Web的關鍵。
完整的Web結構應包括:HTTP協議;Web服務器;通用網關接口CGI;Netscape應用編程接口;Web瀏覽器。
下面對Web的結構進行簡單的介紹:
1、超文本傳輸協議(HTTP)
Hypertext Transfer Protocol超文本在互聯網上的傳輸協議。 當你想進入萬維網上一個網頁, 或者其他網絡資源的時候,通常你要首先在你的瀏覽器上鍵入你想訪問網頁的統一資源定位符(UniformResourceLocator),或者通過超鏈接方式鏈接到那個網頁或網絡資源。這之後的工作首先是URL的服務器名部分,被名爲域名系統的分佈於全球的因特網數據庫解析,並根據解析結果決定進入哪一個IP地址(IP address)。

接下來的步驟是爲所要訪問的網頁,向在那個IP地址工作的服務器發送一個HTTP請求。在通常情況下,HTML文本、圖片和構成該網頁的一切其他文件很快會被逐一請求併發送回用戶。

網絡瀏覽器接下來的工作是把HTML、CSS和其他接受到的文件所描述的內容,加上圖像、鏈接和其他必須的資源,顯示給用戶。這些就構成了你所看到的“網頁”。

大多數的網頁自身包含有超鏈接指向其他相關網頁,可能還有下載、源文獻、定義和其他網絡資源。像這樣通過超鏈接,把有用的相關資源組織在一起的集合,就形成了一個所謂的信息的“網”。這個網在因特網上被方便使用,就構成了最早在1990年代初蒂姆·伯納斯-李所說的萬維網。

傳統的Web數據庫系統體系結構 傳統的Web數據庫系統一般實現Web數據庫系統的連接和應用可採取兩種方法,一種是在Web服務器端提供中間件來連接Web服務器和數據庫服務器,另一種是把應用程序下載到客戶端並在客戶端直接訪問數據庫。中間件負責管理Web服務器和數據庫服務器之間的通信並提供應用程序服務,它能夠直接調用外部程序或腳本代碼來訪問數據庫,因此可以提供與數據庫相關的動態HTML頁面,或執行用戶查詢,並將查詢結果格式化成HTML頁面。通過Web服務器返回給Web瀏覽器。最基本的中間件技術有通過網關接口CGI和應用程序接口API兩種。

2、Web服務器
WEB服務器也稱爲WWW(WORLD WIDE WEB)服務器,主要功能是提供網上信息瀏覽服務。 WWW 是 Internet 的多媒體信息查詢工具,是 Internet 上近年才發展起來的服務,也是發展最快和目前用的最廣泛的服務。正是因爲有了WWW工具,才使得近年來 Internet 迅速發展,且用戶數量飛速增長。Web服務器是可以向發出請求的瀏覽器提供文檔的程序。
服務器是一種被動程序:只有當Internet上運行其他計算機中的瀏覽器發出的請求時,服務器纔會響應。最常用的Web服務器是Apache和Microsoft的Internet信息服務器(Internet Information Services,IIS)。
Internet上的服務器也稱爲Web服務器,是一臺在Internet上具有獨立IP地址的計算機,可以向Internet上的客戶機提供WWW、Email和FTP等各種Internet服務。Web服務器是指駐留於因特網上某種類型計算機的程序。當Web瀏覽器(客戶端)連到服務器上並請求文件時,服務器將處理該請求並將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。服務器使用HTTP(超文本傳輸協議)與客戶機瀏覽器進行信息交流,這就是人們常把它們稱爲HTTP服務器的原因。

3、基於通用網關接口CGI
CGI是WWW服務器運行時外部程序的規範,按照CGI編寫的程序可以擴展服務器的功能,完成服務器本身不能完成的工作,外部程序執行時間可以生成HTML文檔,並將文檔返回WWW服務器。CGI應用程序能夠與瀏覽器進行交互作用,還可以通過數據庫的API與數據庫服務器等外部數據源進行通信,如一個CGI程序可以從數據庫服務器中獲取數據,然後格式化爲HTML文檔後發送給瀏覽器,也可以將從瀏覽器獲得的數據放到數據庫中。幾乎使用的服務器軟件都支持CGI,開發人員可以使用任何一種WWW服務器內置語言編寫CGI,其中包括流行的C、C、VB和Delphi等。

從體系結構上來看,用戶通過Web瀏覽器輸入查詢信息,瀏覽器通過HTTP協議向Web服務器發出帶有查詢信息的請求,Web服務器按照CGI協議激活外部CGI程序,由該程序向DBMS發出SQL請求並將結果轉化爲HTML後返回給Web服務器。再由Web服務器返回給Web瀏覽器。這種結構體現了客戶/服務器方式的三層模型,其中Web服務器和CGI程序實際起到了HTML和SQL轉換的網關的作用。CGI的典型操作過程是:分析CGI數據;打開與DBMS的連接;發送SQL請求並得到結果;將結果轉化爲HTML;關閉DBMS的連接;將HTML結果返回給Web服務器。

基於Web的數據庫訪問利用已有的信息資源和服務器。其訪問頻率大,尤其是熱點數據。但其主要的缺點是:①客戶端與後端數據庫服務器通信必須通過Web服務器,且Web服務器要進行數據與HTML文檔的互相轉換,當多個用戶同時發出請求時,必然在Web服務器形成信息和發佈瓶頸。②CGI應用程序每次運行都需打開和關閉數據庫連接,效率低,操作費時;③CGI應用程序不能由多個客戶機請求共享,即使新請求到來時CGI程序正在運行,也會啓動另一個CGI應用程序,隨着並行請求的數量增加,服務器上將生成越來越多的進程。爲每個請求都生成進程既費時又需要大量內存,影響了資源的使用效率,導致性能降低並增加等待時間;④由於SQL與HTML差異很大,CGI程序中的轉換代碼編寫繁瑣,維護困難;⑤安全性差,缺少用戶訪問控制,對數據庫難以設置安全訪問權限;⑥HTTP協議是無狀態且沒有常連接的協議,DBMS事務的提交與否無法得到驗證,不能構造Web上的OLTP應用。
4、基於服務器擴展的API(應用編程接口)
爲了克服CGI的侷限性,出現的另一種中間件解決方案是基於服務器擴展API的結構。與CGI相比,API應用程序與Web服務器結合得更加緊密,佔用的系統資源也少得多,而運行效率卻大大提高,同時還提供更好的保護和安全性。

服務器API一般作爲一個DLL提供,是駐留在WWW服務器中的程序代碼,其擴展WWW服務器的功能與CGI相同。WWW開發人員不僅可以API解決CGI可以解決的一切問題,而且能夠進一步解決基於不同WWW應用程序的特殊請求。各種API與其相應的WWW服務器緊密結合,其初始開發目標服務器的運行性能進一步發掘、提高。用API開發的程序比用CGI開發的程序在性能上提高了很多,但開發API程序比開發CGI程序要複雜得多。API應用程序需要一些編程方面的專門知識,如多線程、進程同步、直接協議編程以及錯誤處理等。目前主要的WWWAPI有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。使用ISPAI開發的程序性能要優於用CGI開發的程序,這主要是因爲ISAPI應用程序是一些與WWW服務器軟件處於同一地址空間的DLL,因此所有的HTTP服務器進程能夠直接利用各種資源這顯然比調用不在同一地址空間的CGI程序語句要佔用更少的系統時間。而NSAPI同ISAPI一樣,給WWW開發人員定製了NetscapeWWW服務器基本服務的功能。開發人員利用NSAPI可以開發與WWW服務器的接口,以及與數據庫服務器等外部資源的接口。

雖然基於服務器擴展API的結構可以方便、靈活地實現各種功能,連接所有支持32位ODBC的數據庫系統,但這種結構的缺陷也是明顯的:①各種API之間兼容性很差,缺乏統一的標準來管理這些接口;②開發API應用程序也要比開發CGI應用複雜得多; ③這些API只能工作在專用Web服務器和操作系統上。

5、Web瀏覽器
網頁瀏覽器主要通過HTTP協議連接網頁伺服器而取得網頁,HTTP容許網頁瀏覽器送交資料到網頁伺服器並且獲取網頁。目前最常用的HTTP是HTTP/1.1,這個協議在RFC2616中被完整定義。HTTP/1.1 有其一套Internet Explorer並不完全支援的標準,然而許多其他當代的網頁瀏覽器則完全支援這些標準。
網頁的位置以URL(統一資源定位符)指示,此乃網頁的地址;以http:開首的便是通過HTTP協議登陸。很多瀏覽器同時支援其他類型的URL及協議,例如ftp:是FTP(檔案傳送協議)、gopher:是Gopher及https:是HTTPS(以SSL加密的HTTP)。
網頁通常使用超文本標記語言(標準通用標記語言下的一個應用)文件格式,並在HTTP協議內以MIME內容形式來定義。大部分瀏覽器均支援許多HTML以外的文件格式,例如JPEG、PNG和GIF圖像格式,還可以利用外掛程式來支援更多文件類型。在HTTP內容類型和URL協議結合下,網頁設計者便可以把圖像、動畫、視頻、聲音和流媒體包含在網頁中,或讓人們透過網頁而取得它們。
早期的網頁瀏覽器只支援簡易版本的HTML。專屬軟體的瀏覽器的迅速發展導致非標準的HTML代碼的產生。這導致了瀏覽器的相容性的問題。現代的瀏覽器(Mozilla、Opera和Safari)支援標準的HTML和XHTML(從HTML 4.01版本開始)。他們顯示出來的網頁效果都一樣。Internet Explorer仍未完全支援HTML 4.01及XHTML 1.x。現在許多網站都是使用所見即所得的HTML編輯軟體來建構的,這些軟體包括Macromedia Dreamweaver和Microsoft Frontpage等。他們通常預設產生非標準HTML;這阻礙了W3C制定統一標準,尤其是XHTML和CSS(層疊樣式表,設計網頁時用)。
有一些瀏覽器還載入了一些附加組件來Usenet新聞組、IRC(互聯網中繼聊天)和電子郵件。支援的協議包括NNTP(網絡新聞傳輸協議)、SMTP(簡單郵件傳輸協議)、IMAP(交互郵件訪問協議)和POP(郵局協議)。

發佈了16 篇原創文章 · 獲贊 38 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章