Web Caching -- 簡述

web caching 是什麼?

高速緩衝存儲器(存儲器)是非常靠近CPU的存儲器,例如和CPU在同一塊芯片上,以允許快速訪問。類似的,磁盤緩存(a disk cache)是爲了快速訪問而用於存儲頻繁訪問的磁盤頁面(disk pages)的內存。Web caching 是靠近用戶的web對象的存儲,以提供快速訪問,從而改善網絡瀏覽者的用戶體驗。諸如網頁(HTML本身),網頁上的圖片,等就是Web對象(Web object)。
     Web對象能夠緩存在用戶本地電腦上,也可以緩存在網絡中的一臺服務器上。
有多種類型的Web對象緩存:
  • 瀏覽器緩存:瀏覽器緩存對象在用戶機器上。瀏覽器在發送網絡請求之前會首先在緩存中查詢該對象。緩存常用Web對象能夠加快網頁瀏覽。例如,我常常訪問google.com和yahoo.com。如果它們的logos和導航條在我的瀏覽器緩存中,那瀏覽器從緩存中把它們取出而不用從各自的網站上獲取。從緩存中獲取對象要比從網站上獲取對象快多了。
  • 代理緩存:代理緩存被安裝在Web用戶附近,比如企業內部。企業內部用戶被告知配置他們的瀏覽器以使用該代理。對象請求被代理攔截並由代理緩存處理。如果請求的對象不在緩存中,代理緩存就從另一個緩存或網站獲取。
  • 透明代理緩存:使用一個“正常”的代理緩存需要對瀏覽器進行適當配置。而一個“透明”緩存可以在瀏覽器感知不到的情況下攔截瀏覽器請求。透明代理被放置在“網關”,所以所有的Web請求都自動經過代理。
  • 反向代理緩存:用於降低網站負載,位於網站服務器前端。反向代理攔截瀏覽發給網站的請求。如果反向代理沒有請求的對象,它就從另一個緩存或網站上獲取該對象。
Web對象有個與之相關的過期時間,超過這個時間的對象被認爲是“stale”的。一個過期對象不會被用到。如果一個在緩存中的對象過期了,那等於它不在緩存中。過期日期可以在Web對象的http頭中指定。使用EXPIRES 和Cache-Control http頭指定。

Web Caching 有什麼優點?

  • 快速交付Web對象給終端用戶
  • 減少對帶寬的需求和降低成本。有益於用戶,服務器提供商,站長
  • 降低網站服務器的負載
Web緩存機制
假定一個用戶瀏覽器需要一張網頁上的圖片。瀏覽器有緩存,它所有的請求都要經過透明漏斗緩存,而且網站的前端有一個反向代理緩存:
  • 瀏覽器檢查看是否圖片被緩存在本地。如果是,並且圖片沒有過期,瀏覽器就使用緩存中的圖片。否則,瀏覽器發送該圖片的請求到網站。因爲有透明代理緩存,所以請求會被代理緩存攔截到。
  • 透明代理緩存檢查看它是否有該圖片。如果有,而且圖片沒有過去,代理就把該圖片發送給瀏覽器,瀏覽器使用並對其進行緩存。否則,代理緩存發送該圖片的請求到網站,在那裏請求又被反向代理緩存攔截。當透明代理緩存得到該圖片時,它把圖片發送給瀏覽器,並緩存圖片。
  • 反向代理緩存檢查看它是否有該圖片。如果有,而且該對象沒有過期,反向代理緩存就把該對象發送給請求的透明代理緩存。否則,反向代理緩存就從網站上獲取該圖像,把它發送給請求的代理緩存,並緩存該圖像。
請注意,在每一種情況下,如果緩存大小超過了限制,爲了緩存一個新的對象,緩存將不的不扔掉一到多個已緩存對象。通常那些使用不頻繁的對象,或有很長一段時間沒有使用的對象將會被扔掉。

緩存的若干問題

  • 緩存策略:緩存什麼對象?什麼時候把對象從緩存中刪除?等等
  • 緩存命中率:在緩存中找到的對象佔的百分比?
  • 緩存大小:多大的緩存能提供最佳的性能?
  • 可擴展性


Internet緩存協議

Web caches使用Internet cache protocols交換它們存儲的Web 對象的信息。緩存使用這些信息確定從哪裏獲取一個Web對象。從一個附近的緩存獲取對象比從網站獲取對象要有利的多。有兩個這種協議:
  • ICP(Internet Cache Protocol)
  • HTCP(Hyper Text Caching Protocol),比ICP新,而且有更高的預測命中率


在哪裏可以找到更多信息


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章