• 沒有找到結果。

第三章 系統設計與實作

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

3.3.2 系統元件設計

3.3.2.3 Response Handler

一旦收到來自Request Handler 的前置處理結果,Response Handler 便須負責 處理、產生實際網頁內容以及相關之HTTP Header。

Request Handler Request from Client

Type A or B URL

Request from Client &

Cache Manager ( RCCM )

Have IMS Header

Cache File Exist

After First Request from

client , file Exist , Not expired ( AFREN ) First Request ,

File Exist ( FRFE )

After First Request from

client , file Exist , Expired

( AFREE ) First Request ,

File Not exist ( FRFN )

File has been modified A

B Yes

No

After First Request from

client , file Not exist ( AFRN ) Cache File

Exist

Yes

Yes

Yes

No No No

Response Handler

Response Handler 依據不同的前置處理結果,而共有以下三種處理模式:

i. AFREN

AFREN 表示客戶端之請求為 AFR 請求類型,且所請求之網頁存在 於本快取系統中,同時請求中之If-Modified-Since 之日期與本快取系統 中之該快取文件之Last Modified Time 相同,即表示客戶端之快取系統 內之快 取文 件與 本快 取系統 中之 快取 文件 內容相 同, 故 Response Handler 僅須以 HTTP Header – 304 Not Modified 回覆客戶端,告知客戶

端可繼續使用其快取系統中之快取文件,伺服器端也無須再次處理與傳 輸。

ii. FRFE、AFREE

FRFE 表示客戶端之請求為 FR 請求類型,且所請求之網頁在本快

取系統中有快取之版本,故可直接取用快取文件予客戶端,並設定客戶 端對該快取文件之快取控制。

AFREE 表示客戶端之請求為 AFR 請求類型,且所請求之網頁在本 快取系統中有快取之版本,但存在於客戶端之快取系統內之快取文件已 與本快取系統中之快取文件相異,必須以後者置換前者,並重新設定客 戶端對該快取文件之快取控制。

因此,Response Handler 對這二種請求類型之處理模式,皆為自 Cache Directory 中讀取快取文件之內容,並自 Cache Manager 中取得該

快取文件之HTTP Cache-Control Header,最後合併二者,形成一完整傳 輸內容以回覆客戶端。

但須注意的是,Header 中之 max-age 須先減去最初快取文件之 CP 時間與現在時間之差值,如最初該快取文件之<CACHE>CP 參數值為 S1800,故其最初 HTTP Cache-Control Header 中之 max-age 為 1800,

但若其餘客戶端在經600 秒後才請求該網頁快取文件,此時之 max-age 應為1200,方能確保快取文件之一致性,故 Response Handler 將自動回 覆客戶端max-age=1200。

iii. RCCM、FRFN、AFRN

RCCM 因其使用 Type A URL,客戶端之網頁快取系統已是無法快

取,故表示其目的並非真正在於快取,而是在於強迫伺服器端重新執行 動態網頁應用程式,以產生最新之內容,Cache Manager 便是以 RCCM 來維護快取文件之內容一致性,而 RCCM 也有相容於傳統動態網頁應 用程式請求方法之功用,即當客戶端仍以 Type A URL 請求動態網頁 時,Response Handler 仍能負責處理。

FRFN 表示客戶端之請求為 FR 請求類型,AFRN 則表示客戶端之

圖3.25、Response Handler 處理流程

請求為 AFR 請求類型,這二者所請求之網頁皆不存在於本快取系統之 中,故皆必須執行網頁應用程式以產生之。

是故,Response Handler 對這三種請求類型之處理模式,皆為執行 動態網頁應用程式以產生動態網頁,不過FRFN 與 AFRN 在處理之前,

須將其所使用之Type B URL 轉譯成 Type A URL,只因動態網頁應用程 式有時須取得如Query String 等等參數值,方能正常執行。

總和上述,Response Handler 之所有處理模式與流程,整理為圖 3.25。

Response Handler Request Handler

Type B to Type A URL

Web Application Processing

HTML Page

Response Output Filter Get information from

Cache Directory and Cache Manager

Response the request file and plus HTTP

Cache-Control Header Response with

HTTP Header – 304 Not Modified

AFREN FRFE AFREE RCCM

FRFN AFRN