網路規劃與管理技術:第 五章 應用系統協定與分析 下一頁 |
第五章 應用系統協定與分析 5-1 網頁伺服系統分析
5-1-1 網頁系統簡介 『全球資訊網』(World Wide Web, WWW)是帶動整個網路發展中最重要系統,已漸漸成為網際網路的代名詞,也就是一般所謂的『網頁伺服系統』(Web Server System)。早期發展網頁系統時,並沒有想到會有這麼大的發展空間,僅考慮到如何將文件可以在各種系統之間流通。當時各系統之間的文件格式並不相容(現在也一樣),譬如,在 Apple、Windows、Unix、或其它系統所製作的文件,並無法直接在另一系統上顯示或修改處理。當時 CERN 只希望建立一套系統,可以共通顯示不同系統之間的文字,它的做法是建構一套平台來顯示文件,而這個平台可以安裝在不同系統之上。另外,由於作業系統之間的檔案結構也不盡相同,無法將一個系統所製作的文件儲存於磁碟片,再由另一系統將它讀出來,因此,共通平台的文件必需利用網路以 ASCII 格式來互相傳輸。圖 5-1 為網頁系統的基本原理,其目的是希望建構一個可以共通的顯示平台,例如,由電腦 A 所製作出來的文件,能夠透過網路傳輸給電腦 B,並可在電腦 B 能如身歷其境般的顯示出來。CERN 的想法是希望各研究單位的成果,利用網路傳輸到其它單位上,而用此共通平台來顯示,以解決不同系統之間,文件格式不相容的問題。
圖 5-1 網頁系統原理 這個共通平台就是目前所稱的『瀏覽器』,而電腦之間就以 HTTP 協定來互相通訊。文件在瀏覽器上以一頁一頁為單位來顯示,因此,將瀏覽器上顯示的文件稱之為『網頁』(Web Page),又每一文件都有封面,就將文件的封面稱之為『首頁』(Home Page),而將提供網頁讓瀏覽器下載的伺服器稱之為『網頁伺服器』(Web Server)。至於文件要如何製作呢?才能在瀏覽器上顯示出來,於是製定了 HTML 標準,希望所有文件都能依此標準來製作,才能在不同系統上的瀏覽器顯示,網頁系統就是這麼簡單的概念之下產生了。因此,早期網頁只能顯示文字模式(如 Mosaic),真的沒有想到數位訊號處理技術,也正在同時如火如荼的發展中,兩者一觸即發地結合在一起,很快的將影像及聲音的數位處理技術崁入瀏覽器之中,多采多姿的全球資訊網世界就因此而誕生了。 5-1-2 網頁系統架構 WWW 也是主從式架構,伺服器端(Web Server)提供資源(HTML 文件)讓客戶端(瀏覽器)下載,它們之間是以 HTTP 通訊協定來傳輸。伺服器端使用 URL 的定址方式,客戶端可以依照 URL 位址找到所要的網站,所以 URL 又稱為『網址』。我們分別簡述其功能如下:
圖 5-2 全球資訊網簡介 (A) HTML 『超文字標記語言』(HyperText Makeup Language, HTML)定義文書處理的文件都有其資料表示方式,譬如:對於某一段文字的大小或粗細體(如14 號字及粗體),會在這一段文字的頭尾加入標記符號。當文件被開啟時,再依照標記符號將文字型態顯示在螢幕上,如圖 5-2-1 所示。
圖 5-2-1 HTML 文件製作 常用標記符號如下:
(B) 瀏覽器 客戶端就是瀏覽器(如 IE 或 Netscape),它的功能是由伺服器端上接收 HTML 程式後,再將其執行並顯示成文件,此文件型態就稱為網頁(Web Page)。所以,客戶端以顯示大量文件(或網頁)為主要工作。每一網頁上的文字或圖樣可以指向其它相關頁來連結,頁和頁之間的連結可以無止境的延伸,此連結方法就稱為『超鏈結文件』(HyperText)。不僅可以連結網頁,還可以在網頁上任何文字或圖樣設定連結到其它網站,稱之為『超連結』(Hyperlink)。因此,在客戶端上可以行走全世界任何一個網站,觀看網站上的網頁,所以稱之為『瀏覽器』(Browser)。 基本上,瀏覽器是屬於直譯器(Interpreter)的功能,它由伺服器上下載網頁程式(HTML)將其翻譯並執行後,再將結果顯示到螢幕上。另一方面,它也是屬於 HTTP 伺服器的客戶端,負責和 HTTP 伺服器之間的通訊。但隨著瀏覽器應用的方便性,人們期望將不同的網路功能都附加到瀏覽器上,使它具有其它網路系統的功能,譬如,FTP,BBS,Mail 等功能。因此,再將其它網路系統的客戶端功能加到瀏覽器上,如圖 5-3 所示。
圖 5-3 瀏覽器的功能圖 由圖 5-3 可以發現瀏覽器不再僅是網頁系統的客戶端,也可當作 FTP、Mail、New 等系統的客戶端,甚至可以瀏覽本機上的檔案(File)內容。另一方面,如果僅有 HTML 直譯程式,那麼瀏覽器只能觀賞文字或圖形,如此並不能滿足使用者的需求,我們希望能隨使用者的喜好載入其它程式,來增加瀏覽器的功能。例如,插入 Java 直譯器後,瀏覽器就可以執行 Java 所開發的程式,不但可以整合多媒體(文字、聲音、影像),還可以表現動畫,提高網站的可看性。也就是說,我們可以將各種不同的直譯程式,崁入瀏覽器之中,使它能編譯執行不同的程式語言,來增強瀏覽器的功能。總而言之,瀏覽器不但必須具備有各種通訊協定的功能,也包含各式各樣的直譯程式,因此,可以將瀏覽器視為全球資訊網的工作平台並不為過,也促使瀏覽器成為最複雜的軟體套件,相對的,網路應用系統的最大安全漏洞,也出現在瀏覽器上。 (C) 一致性資源定址 既然瀏覽器可以接受不同協定的傳輸,也可以處理不同語言所編寫的程式,但它如何判斷該以何種模式來工作,這必須由使用者命令它處理。然而使用者應該以何種模式和瀏覽器溝通,這就是『一致性資源定址』(Uniform Resource Locators, URL)的制定目的,當使用者以 URL 通知瀏覽器工作時,必須標明以下三項資訊:(a) 連接該網站使用何種通訊協定(http 或 ftp);(b) 網站位址在哪裡(主機的 DNS 名稱);(c) 該網頁的檔案名稱(或檔案格式)。例如: http://www.tsnien.idv.tw/index.html、ftp://tsnien.idv.tw (D) 網頁伺服器 『網頁伺服器』(Web Server)是用來儲存 HTML 文件,讓瀏覽器下載執行的伺服器。它和客戶端之間是以 HTTP 通訊協定溝通,又稱為『HTTP 伺服器』(HTTP Server),傳輸埠口大多架設在 80/tcp 位置。網頁伺服器是目前最炙手可熱的設備,它也是一套非常複雜的系統。隨著網站需求的大量增加,一部網頁伺服器只能架設一個網站已漸不符所需了,我們希望在同一部網頁伺服器上建構更多的網站,才能符合經濟價值。因此,它必須透過虛擬主機技術,來建構許多虛擬網站,乃至個人網站。 5-1-3 HTTP 傳輸協定 『超文件傳輸協定』(HyperText Transfer Protocol, HTTP)是針對 Web 設計的傳輸協定。目前使用的協定大多是 HTTP/1.0(RFC 1945)以上的版本,而在 HTTP/1.1(RFC 2068、RFC 2616)版中增加了虛擬主機的功能,相信會有更新版本陸續被發展出來。在 HTTP 協定下,伺服端和客戶端之間是屬於『要求/回應』的存取方式。也就是說,客戶端以 ASCII 文字的通訊命令,來要求伺服端執行,伺服端將執行結果以 ASCII 文字方式回應給客戶端,基本上,所有請求命令都由客戶端要求,而伺服端只是被動地接受命令來工作。
圖 5-3-1 HTTP 傳輸協定 (A) HTTP 常用命令 HTTP 協定常用基本命令如下: (1) GET:請求讀取網頁。瀏覽器以 GET 命令,請求伺服器送出網頁,以 MIME 方式編碼。 (2) HEAD:請求讀取網頁的檔頭(header)。客戶端僅請求訊息檔頭,而非實際網頁。這方法可取得網頁最後修改時間,可用在建立或測試 URL 的有效性。 (3) PUT:請求儲存網頁。客戶端寫入網頁,提供客戶端建立網頁的功能。 (4) POST:附加一個名稱資源。客戶端將資料附加到某一資源的資料之後。 (5) DELETE:刪除網頁。客戶端要求刪除某一網頁。 (6) LINK:建立超連結。客戶端要求加入超連結。 (7) UNLINK:刪除超連結。客戶端要求刪除超連結。 HTTP 伺服端也以 3 個數字來回應執行的結果,第一個數字表示回應種類,如下: ● 2×× 表示命令執行成功(Success); ● 3 ×× 為命令執行轉向(Redirection); ● 4×× 為客戶端錯誤(Client Error); ● 5×× 為伺服端錯誤(Server Error)。 5-1-4 HTTP 協定運作 Http 協定係利用 TCP 封包承載,一般伺服器埠口大多是 80/tcp,包裝格式如圖 5-3-1 所示。
圖 5-3-2 Http 封包包裝 HTTP 命令格式並不像其他通訊協定有欄位可以填寫,而直接以文字方式要求、回應,像交談式對話方式,但還是有制定句型格式。Http 協定運作模式如下圖:
圖 5-3-3 Http 協定運作模式 客戶端發送 Http Request 向伺服端請求訊息,伺服端再以 Http Response 回應給客戶端。Http Request 包含 Request Line 與 Http headers 兩部分,Request Line 即是發送請求命令,包含:Method (方法)、Path (路徑)、Protocol (協定)等三項構成(至多四項)。Http Headers 包含若干個相關參數,每一參數是由: Name: Value 格式所構成。以 Get 命令的 Http Request 範例如下:
第一行是 Request Line 內容:GET 是 HTTP 命令,表示向伺服器要求檔案,檔案位於 /image 目錄下的 flag.img,HTTP/1.1 代表所使用的 HTTP 協定版本。其他相關參數有 Host、User-Agent、Accept 等等。第二行以下便是 Http Header,攜帶相關參數。 當伺服器收到 Http Request(Get 命令)後,回應 Http Response,如下:
第一行為 Status Line,包含傳輸協定 (HTTP/1.1) 與傳輸狀態 (200 OK),接著是 Http Header 與傳輸內容。 5-1-5 網頁系統規劃與建置 (A) 網路規劃與建置 我們利用 Cisco Packet Tracer 規劃與建置網頁系統,來觀察它的運作模式。雖然它是模擬真實情況,但幾乎能與真實網路完全相符。吾人需選擇下列元件來建置: (1) Server-PT:模擬伺服器主機。於該主機上可選擇開啟多種服務,譬如: HTTP、DHCP、DNS、FTP 等伺服器功能,本範例選擇開啟 HTTP 服務。 (2) PC-PT:模擬客戶端主機。該主機上提供多種客戶端套件,譬如:Terminal、Command Prompt、Web Browser、Email 等等。本範例選擇使用 Web Browser 套件。 (3) 2960-24TT。模擬 24 埠口 Layer 2 交換器。作為連結 Server-PT 與 PC-PT 的設備。 另外,吾人選擇 192.168.0.0/24 私有網路區段,並指定 192.168.0.254 為 Default Gateway 與 DNS = 168.95.1.1,雖然本範例沒有用到此功能,但還是依照標準作業程序完成它。主機的 IP 位址設定與連接埠口位置,如下表所示:(請自行設定主機上網路參數)
依照上表所建置的網路圖,如下所示:[請下載:Web Server 系統.pkt]
圖 5-4 Web 網路系統 (B) 伺服器設定與連線 連線完成之後,須開啟伺服器上的 HTTP 服務,再由 PC 上瀏覽該伺服器上網頁。 (1) 步驟 1:於 HTTP_Server 上開啟 HTTP 服務,如下: (2) 步驟 2:於 PC0 上開啟 Browser,並輸入 http://192.168.0.250,如果可以瀏覽到伺服器上網頁,則表示網頁系統建置成功,如下: 5-1-6 HTTP 協定分析 (A) HTTP 封包擷取 (1) 步驟 1:擷取 HTTP 封包:將 Packet Tracer 設定成 Simulation Mode,並將過濾封包僅選擇 HTTP 封包,如下: (2) 步驟 2:PC0 再選擇 desktop -> Browser -> 輸入 http://192.168.0.250 -> enter (3) 步驟 3:Packet Tracer 上點選 Auto Capture/Play,之後觀察封包流動,並擷取封包,如下:
(B) HTTP 協定分析 (1) 步驟 1:觀察 HTTP Request 封包,得到下列結果:
(2) 步驟 2:觀察 HTTP Response 封包,得到下列結果:
5-1-7 分析 HTTP 協定 - Wireshark 請自行練習
|
翻轉工作室:粘添壽
網路規劃與管理技術:
翻轉電子書系列:
|