iT邦幫忙

0

筆記一下學習網路五層#2.2.5 - 2.2.6

Web Caching

Web Cache,aka proxy servernetwork用於代替Origin Web server滿足HTTP request的機制,web cache擁有自己的storage空間,並會把最近收到請求的objects存在storage,user browser可以透過config讓所有的request都先被轉到web cache裡。

假使今天client端發送出一個request,一樣會建立一條TCP connection至web cache,接著web cache檢查是否有一份備分的object在儲存空間裡,若有的話,web cache直接代替server送回response,若無的話則送出request建立TCP connection至 origin server,取得response後在自己的storage 備份object,接著再送回clicent side。

web cache 同時是client & server,web cache主要應用有兩個原因,一者為減少response time for client request尤其當client to server 的頻寬小於 client to web cache時候,二者為減少traffic,若request並無真的發至origin server 可以減輕server的負擔並減少access to internet的traffic,因此可以對此設計提升效能。

The Conditional GET

上述提到Web cache的好處,但也有一個隱憂是,假使 origin server的檔案在web cache儲存後有所更動的話,該怎麼處理,HTTP提供一個機制讓web cache可以去確認 object是否為up to date,這機制稱為Condition GET,符合conditional GET的條件為

  1. request message 用的method 為GET
  2. request message header line 夾帶 IF-modified-since

記得在response message有著一筆Last-Modified的紀錄,而當web cache再次收到request時,web cache會觸發up-to-date check 發出一筆condition GET夾帶If-modified-since,若web server判斷無modified的話,則會回傳response without requested object,並在status line帶著status code 304 not modified


尚未有邦友留言

立即登入留言