網路規劃與管理技術第 五章 應用系統協定與分析     下一頁

第五章 應用系統協定與分析

5-1 網頁伺服系統分析

內容:

  • 5-1-1 Web 系統簡介

  • 5-1-2 Web 系統架構

  • 5-1-3 HTTP 傳輸協定

  • 5-1-4 HTTP 協定運作

  • 5-1-5 Web 系統規劃與建置

  • 5-1-6 HTTP 協定分析 - Packet Tracer

  • 5-1-7 HTTP 協定分析 - Wireshark

5-1-1 網頁系統簡介

『全球資訊網』(World Wide Web, WWW是帶動整個網路發展中最重要系統,已漸漸成為網際網路的代名詞,也就是一般所謂的『網頁伺服系統』(Web Server System)。早期發展網頁系統時,並沒有想到會有這麼大的發展空間,僅考慮到如何將文件可以在各種系統之間流通。當時各系統之間的文件格式並不相容(現在也一樣),譬如,在 AppleWindowsUnix、或其它系統所製作的文件,並無法直接在另一系統上顯示或修改處理。當時 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 文件製作

常用標記符號如下:

    

    

<HTML> ….. </HTML>

宣告網頁將以 HTML 編寫。

<HEAD> …. </HEAD>

定義網頁的檔頭。

<TITLE> … </TITLE>

定義標題(並不在網頁上顯示)。

<BODY> … </BODY>

框註內為網頁主體。

<Hn> … </Hn>

n=1~6,框註內六個階層的標題字大小。

<B> … </B>

設定框註內文字為粗體。

<I> …. </I>

設定框註內文字為斜體字。

<UL> … </UL>

框註內為無序串列(註標式)。

<OL> … </OL>

框註內為編號串列。

<MENU> … </MENU>

框註內<LI>項目行成選單。

<LI>

串列項目的開始(並無 </LI>)。

<BR>

強迫分離。

<P>

區段開始。

<HR>

水平線。

<PRE> … </PRE>

已格式化文字。

<IMG SRC= "…">

在此載入影像圖形。

<A HREF="…"> … </A>

定義超連結。

(B) 瀏覽器

客戶端就是瀏覽器(如 IE Netscape),它的功能是由伺服器端上接收 HTML 程式後,再將其執行並顯示成文件,此文件型態就稱為網頁(Web Page)。所以,客戶端以顯示大量文件(或網頁)為主要工作。每一網頁上的文字或圖樣可以指向其它相關頁來連結,頁和頁之間的連結可以無止境的延伸,此連結方法就稱為『超鏈結文件』(HyperText。不僅可以連結網頁,還可以在網頁上任何文字或圖樣設定連結到其它網站,稱之為『超連結』(Hyperlink。因此,在客戶端上可以行走全世界任何一個網站,觀看網站上的網頁,所以稱之為『瀏覽器』(Browser

基本上,瀏覽器是屬於直譯器(Interpreter)的功能,它由伺服器上下載網頁程式(HTML)將其翻譯並執行後,再將結果顯示到螢幕上。另一方面,它也是屬於 HTTP 伺服器的客戶端,負責和 HTTP 伺服器之間的通訊。但隨著瀏覽器應用的方便性,人們期望將不同的網路功能都附加到瀏覽器上,使它具有其它網路系統的功能,譬如,FTPBBSMail 等功能。因此,再將其它網路系統的客戶端功能加到瀏覽器上,如圖 5-3 所示。

5-3 瀏覽器的功能圖

        由圖 5-3 可以發現瀏覽器不再僅是網頁系統的客戶端,也可當作 FTPMailNew 等系統的客戶端,甚至可以瀏覽本機上的檔案(File)內容。另一方面,如果僅有 HTML 直譯程式,那麼瀏覽器只能觀賞文字或圖形,如此並不能滿足使用者的需求,我們希望能隨使用者的喜好載入其它程式,來增加瀏覽器的功能。例如,插入 Java 直譯器後,瀏覽器就可以執行 Java 所開發的程式,不但可以整合多媒體(文字、聲音、影像),還可以表現動畫,提高網站的可看性。也就是說,我們可以將各種不同的直譯程式,崁入瀏覽器之中,使它能編譯執行不同的程式語言,來增強瀏覽器的功能。總而言之,瀏覽器不但必須具備有各種通訊協定的功能,也包含各式各樣的直譯程式,因此,可以將瀏覽器視為全球資訊網的工作平台並不為過,也促使瀏覽器成為最複雜的軟體套件,相對的,網路應用系統的最大安全漏洞,也出現在瀏覽器上。

(C) 一致性資源定址

既然瀏覽器可以接受不同協定的傳輸,也可以處理不同語言所編寫的程式,但它如何判斷該以何種模式來工作,這必須由使用者命令它處理。然而使用者應該以何種模式和瀏覽器溝通,這就是『一致性資源定址』(Uniform Resource Locators, URL的制定目的,當使用者以 URL 通知瀏覽器工作時,必須標明以下三項資訊:(a) 連接該網站使用何種通訊協定(http ftp);(b) 網站位址在哪裡(主機的 DNS 名稱);(c) 該網頁的檔案名稱(或檔案格式)。例如:

http://www.tsnien.idv.tw/index.htmlftp://tsnien.idv.tw

(D) 網頁伺服器

『網頁伺服器』(Web Server是用來儲存 HTML 文件,讓瀏覽器下載執行的伺服器。它和客戶端之間是以 HTTP 通訊協定溝通,又稱為HTTP 伺服器』(HTTP Server傳輸埠口大多架設在 80/tcp 位置。網頁伺服器是目前最炙手可熱的設備,它也是一套非常複雜的系統。隨著網站需求的大量增加,一部網頁伺服器只能架設一個網站已漸不符所需了,我們希望在同一部網頁伺服器上建構更多的網站,才能符合經濟價值。因此,它必須透過虛擬主機技術,來建構許多虛擬網站,乃至個人網站。

5-1-3 HTTP 傳輸協定

『超文件傳輸協定』(HyperText Transfer Protocol, HTTP是針對 Web 設計的傳輸協定。目前使用的協定大多是 HTTP/1.0RFC 1945)以上的版本,而在 HTTP/1.1RFC 2068RFC 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 範例如下:

GET /image/flag.img HTTP/1.1   (Request Line)

Host:tsnien.idv.tw               (Http Header)

User-Agent:Mozilla/5.0

Accept:text/html

Accept-Language:en-us

第一行是 Request Line 內容:GET HTTP 命令,表示向伺服器要求檔案,檔案位於 /image 目錄下的 flag.imgHTTP/1.1 代表所使用的 HTTP 協定版本。其他相關參數有 HostUser-AgentAccept 等等。第二行以下便是 Http Header,攜帶相關參數。

當伺服器收到 Http Request(Get 命令)後,回應 Http Response,如下:

HTTP/1.1 200 OK  (Status Line)

Transfer-Encodingchunked       (Http Header)

DateSun, 20, Nov 2018 08:20 GMT

Server:

傳輸內容       (Content)

第一行為 Status Line,包含傳輸協定 (HTTP/1.1) 與傳輸狀態 (200 OK),接著是 Http Header 與傳輸內容。

5-1-5 網頁系統規劃與建置

(A) 網路規劃與建置

我們利用 Cisco Packet Tracer 規劃與建置網頁系統,來觀察它的運作模式。雖然它是模擬真實情況,但幾乎能與真實網路完全相符。吾人需選擇下列元件來建置:

(1) Server-PT模擬伺服器主機。於該主機上可選擇開啟多種服務,譬如: HTTPDHCPDNSFTP 等伺服器功能,本範例選擇開啟 HTTP 服務。

(2) PC-PT模擬客戶端主機。該主機上提供多種客戶端套件,譬如:TerminalCommand PromptWeb BrowserEmail 等等。本範例選擇使用 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 位址設定與連接埠口位置,如下表所示:(請自行設定主機上網路參數)

 裝置

 IP 位址

 連接埠口

 HTTP_Server

 192.168.0.250

 SW1(fa0/24)

 PC0

 192.168.0.1

 SW1(fa0/1)

 Default gateway = 192.168.0.254DNS = 168.95.1.1

依照上表所建置的網路圖,如下所示:[請下載: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) 步驟 2PC0 再選擇 desktop -> Browser -> 輸入 http://192.168.0.250 -> enter

(3) 步驟 3Packet Tracer 上點選 Auto Capture/Play,之後觀察封包流動,並擷取封包,如下:

  • 第一個封包是 PC0 => HTTP_Server http request 封包。

  • 第二個封包是 HTTP_Server 回應給 PC0 http response 封包。

(B) HTTP 協定分析

(1) 步驟 1觀察 HTTP Request 封包,得到下列結果:

  • Ethernet II 標頭:Type = 0x0800

  • IP 標頭:PRO = 0x06(TCP 封包)SRC IP = 192.168.0.1DST IP = 192.168.0.250

  • TCP 標頭:Source Port = 1026Dest Port = 80

  •  HTTP Request

(2) 步驟 2觀察 HTTP Response 封包,得到下列結果:

  • Ethernet II 標頭: Type = 0x0800

  • IP 標頭:PRO = 0x06SRC IP = 192.168.0.250DES IP = 192.168.0.1

  • TCP 標頭:Source Port = 80DES Port = 1026

  • HTTP Response

5-1-7 分析 HTTP 協定 - Wireshark

       請自行練習

 

翻轉工作室:粘添壽

 

網路規劃與管理技術:

 

 

翻轉電子書系列: