web緩存: 1.可以自動保存常見文檔副本的HTTP設備,當web請求抵達緩存時,如果存在緩存副本,就直接從本地存儲設備返回,而不是去源伺服器獲取 2.緩存命中和未命中 3.HTTP再驗證,檢測伺服器上的內容是否發生了變化,新鮮度檢測規則。緩存對副本進行再驗證時,會向伺服器發送一個小的再驗證請求,如... ...
web緩存: 1.可以自動保存常見文檔副本的HTTP設備,當web請求抵達緩存時,如果存在緩存副本,就直接從本地存儲設備返回,而不是去源伺服器獲取 2.緩存命中和未命中 3.HTTP再驗證,檢測伺服器上的內容是否發生了變化,新鮮度檢測規則。緩存對副本進行再驗證時,會向伺服器發送一個小的再驗證請求,如果沒變化,伺服器會返回304 Not Modified,get請求中添加if-modified-since會進行再驗證 4.緩存命中率:由緩存提供服務的占比,命中率與緩存大小,用戶興趣相似點,數據的變化,緩存配置等有關,40%的命中率是合理的,對降低整體時延很有好處 5.位元組命中率:緩存提供的位元組流量在傳輸流量中的占比,對節省帶寬很有利 6.私有緩存,比如web瀏覽器 7.共有代理緩存,實現層次化的多級緩存很有意義 8.網狀緩存,內容路由,對等緩存;有些不是簡單的層次結構而是構建複雜的網狀關係緩存,這些代理緩存也可以稱為內容路由器,ICP和HTCP協議擴展了HTTP的對等緩存兄弟緩存 9.緩存處理步驟:接收請求=>解析請求=>查詢本地副本(獲取源伺服器)=>新鮮度檢測=>創建響應=>發送響應=>記錄日誌 10.文檔過期:伺服器返回頭信息Cache-Control 和Expires,為文檔附加過期時間。Cache-Control:max-age=484200是相對時間,保存的秒數,用的更多一些 11.伺服器再驗證:If開頭的條件方法頭信息進行再驗證 If-Modified-Since:日期 If-None-Match:實體標簽再驗證 12. 打開新視窗 如果指定cache-control的值為private、no-cache、must-revalidate,那麼打開新視窗訪問時都會重新訪問伺服器。而如果指定了max-age值,那麼在此值內的時間里就不會重新訪問伺服器,例如:Cache-control: max-age=5 表示當訪問此網頁後的5秒內再次訪問不會去伺服器. 在地址欄回車 如果值為private或must-revalidate,則只有第一次訪問時會訪問伺服器,以後就不再訪問。如果值為no-cache,那麼每次都會訪問。如果值為max-age,則在過期之前不會重覆訪問。 按後退按扭 如果值為private、must-revalidate、max-age,則不會重訪問,而如果為no-cache,則每次都重覆訪問. 按刷新按扭 無論為何值,都會重覆訪問. Cache-Control:no-cache就表示不緩存 13. apache的配置: 3.註釋掉apache配置文件中的: #ExpiresDefault A0 #Header set Cache-Control "private, must-revalidate, max-age=0, proxy-revalidate, no-transform" #Header set Pragma "no-cache" ExpiresActive On ExpiresDefault "access plus 300 seconds" 14.php文件中的響應頭: header('Cache-Control: max-age=' . $this->expires); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $this->expires) . ' GMT'); header('Pragma: '); // unset Pragma header