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,因此可以對此設計提升效能。

https://ithelp.ithome.com.tw/upload/images/20190110/20107670wt8j4hoVRv.png

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


尚未有邦友留言

立即登入留言