用了CDN緩存,就會跳過強緩存和協商緩存嗎?看了一下瀏覽器緩存,強緩存、協商緩存、CDN緩存。但他們的關系我有點迷糊。開啟了用了CDN緩存,還會用到判斷強緩存和協商緩存嗎?大神們?
1 回答

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
這個問題吧,我說點兒自己的理解,可能不是特別準確,但是希望對你有幫助。
簡單講的話,這個 CDN 緩存與強緩存和協商緩存本身是兩碼事。強緩存和協商緩存是指瀏覽器在加載一個靜態資源時,決定緩存是否命中的策略類型,一般的過程如下:
首先根據資源的 http header 來判定它是否命中強緩存,如果命中的話,請求是不會發送到服務器的,直接使用本地緩存即可
如果強緩存沒命中,則一定會發送請求去服務器進行確認,這里就是協商緩存了,協商的過程會根據服務器的配置、請求發送的 http header 等信息來判定是否命中協商緩存,如果命中,瀏覽器還是會直接使用本地緩存的
而 CDN 緩存加速的原理是因為它會把資源緩存在節點上,這樣訪問某個資源時,直接訪問 CDN 節點即可,不需要直接訪問源站。你問題中指的是否跳過強緩存和協商緩存,這個是要看配置的。一般配置 CDN 的話,肯定都有管理控制臺讓你填一些參數的,比如內容、過期時間、權重等等,這些參數的意義在于,瀏覽器與 CDN 節點交互的時候,會根據這些參數以及你源站的配置來決定是直接返回緩存資源,還是將這個請求轉發至源站(具體規則很復雜,你可以上網找文章詳細了解一下),以讓源站來決定返回什么樣的資源,其中的過程也會包含上面一段所描述的強緩存與協商緩存的解析過程。
以上,個人拙見,大神輕噴。
- 1 回答
- 0 關注
- 1305 瀏覽
添加回答
舉報
0/150
提交
取消