• 沒有找到結果。

第三章 系統設計與實作

3.3 Server-Level 動態網頁快取系統之設計

3.3.1 系統整體架構與運作流程

(Socket Connection)之方式,以讓 Cache Manager 能直接對網頁伺服 器之通訊埠(Port)提出請求。

圖3.17、Server-Level 動態網頁系統之整體架構與流程示意圖

負責輸入與前置處理,接收客戶端之請求,以及將請求中的URL 與 HTTP Header 作辨識與處理,而Response Handler 則主要負責處理與輸出,收受 Request Handler 之初步處理結果,找出客戶端所指定的網頁文件,若網頁文件為動態網頁,則先 令動態網頁應用程式進行運算,並將網頁文件之內容讀出後,搭配上相關的HTTP Header,最後再輸出回客戶端以完成全部流程,於是,本研究首先對此二大網頁 伺服器處理元件之功能作出修改,使Request Handler 能處理 Type B URL,同時 修改Response Handler,使其能直接取用存放於 Cache Directory 內之快取文件,

以便快速回覆客戶端之請求,此外,此快取系統更於網頁伺服器整體處理流程之 末端,添加一Response Output Filter,以攔截 Request Handler 所輸出之動態網頁

Client

Web Server Request

Handler

Response Output Filter Response

Handler

Cache Manager Cache Directory

內容,進行動態網頁內之動、靜態內容分離與處理之作業。

不過動、靜態內容之分離作業,若缺乏動態網頁程式設計師之輔佐,則在辨 識動態網頁內之動、靜態內容上之效率將會大打折扣,故為了便利於程式設計師 標示網頁中之動、靜態內容,以使Response Output Filter 能迅速處理,本研究於 此快取系統中,新創一<CACHE> HTML 標籤,讓程式設計師在使用<CACHE>

時,就如同使用一般的 HTML 標籤同樣容易,而無須更改所使用之程式語言,

也無須大幅更動程式之結構,同時在<CAHCE>內更還有著多種參數,可供程式 設計師自行斟酌使用,這些參數實際對應到不同的 HTTP Cache-Control Header 與快取文件管理措施,使程式設計師對動態網頁之快取應用與管理,有著更大的 揮灑空間與掌控權力,進而能撰寫出強大且具快取能力之動態網頁應用程式。

至於Cache Directory 與 Cache Manager,則仍位於伺服器之後端,並相同於 在Application-Level 動態網頁快取系統時之功用,Cache Directory 仍是存放著所 有的快取文件,而Cache Manager 之主要工作,仍為存放這些快取文件之屬性值,

與維護快取文件之內容一致性,以及在Cache Directory 之使用空間即將滿溢時,

進行快取空間置換之工作,但不同與先前之處,則在於Cache Manager 所存放快 取文件之屬性值上,多了HTTP Cache-Control Header,此外,Cache Manager 與 此快取系統之系統元件間是有著直接、緊密的溝通、互動關係,Request Handler、

Response Handler 與 Response Output Filter 皆可直接與 Cache Manager 接觸,存

取其內之快取文件屬性值。

而在此快取系統之整體處理流程上,一開始,客戶端向伺服器端提出請求,

當網頁伺服器收到客戶端之請求時,則由 Request Handler 先行負責處理,其首 先判別請求內之URL 與 HTTP Header,並視情況之決定至 Cache Manager 中,

確認有無所請求之網頁文件的快取版本,接下來,再由 Response Handler 視 Request Handler 之判別結果,自 Cache Manager 與 Cache Directory 中取出快取文

件之HTTP Header 與內容,直接通過 Response Output Handler 傳回客戶端,或是 執行已經由程式設計師添加上<CACHE>之動態網頁應用程式來運算處理,之 後,再由Response Output Filter 攔截程式所產生之動態網頁內容,分離出當中動 態與靜態部分之內容,將這些分離後之個別內容儲存於Cache Directory 中而成快 取文件,並取出個別內容之屬性值與HTTP Header 儲存於 Cache Manager 中,最 後,傳回靜態內容之網頁快取文件予客戶端,使客戶端能依靜態內容網頁文件內 之指示,再向伺服器端請求所需要的動態內容之網頁快取文件,以能在客戶端上 合成動、靜態內容成一完整網頁文件。

由於動態網頁之動、靜態內容可快取於客戶端之快取系統內,同時掌控於程 式設計師透過<CACHE>參數所設定之 HTTP Cache-Control Header,故靜態部分 可多次重複使用,僅須於快取中之動態內容逾期時,再向伺服器端請求並更新動 態內容,故可有效的大幅降低網路之傳輸量,也因此可減輕伺服器之工作量,並

縮 短 客 戶 端 之 等 待 時 間 。 不 過 , 由 於 本 研 究 尚 未 有 足 夠 之 時 間 , 完 成 在 Server-Level 動態網頁快取系統中之所有系統元件之實作,因此,在此僅說明此 快取系統之系統設計。