在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 用了CDN緩存,就會跳過強(qiáng)緩存和協(xié)商緩存嗎?

用了CDN緩存,就會跳過強(qiáng)緩存和協(xié)商緩存嗎?

用了CDN緩存,就會跳過強(qiáng)緩存和協(xié)商緩存嗎?

看了一下瀏覽器緩存,強(qiáng)緩存、協(xié)商緩存、CDN緩存。但他們的關(guān)系我有點(diǎn)迷糊。開啟了用了CDN緩存,還會用到判斷強(qiáng)緩存和協(xié)商緩存嗎?大神們?
回答
編輯回答
尕筱澄

這個(gè)問題吧,我說點(diǎn)兒自己的理解,可能不是特別準(zhǔn)確,但是希望對你有幫助。

簡單講的話,這個(gè) CDN 緩存與強(qiáng)緩存和協(xié)商緩存本身是兩碼事。強(qiáng)緩存和協(xié)商緩存是指瀏覽器在加載一個(gè)靜態(tài)資源時(shí),決定緩存是否命中的策略類型,一般的過程如下:

  • 首先根據(jù)資源的 http header 來判定它是否命中強(qiáng)緩存,如果命中的話,請求是不會發(fā)送到服務(wù)器的,直接使用本地緩存即可
  • 如果強(qiáng)緩存沒命中,則一定會發(fā)送請求去服務(wù)器進(jìn)行確認(rèn),這里就是協(xié)商緩存了,協(xié)商的過程會根據(jù)服務(wù)器的配置、請求發(fā)送的 http header 等信息來判定是否命中協(xié)商緩存,如果命中,瀏覽器還是會直接使用本地緩存的

而 CDN 緩存加速的原理是因?yàn)樗鼤奄Y源緩存在節(jié)點(diǎn)上,這樣訪問某個(gè)資源時(shí),直接訪問 CDN 節(jié)點(diǎn)即可,不需要直接訪問源站。你問題中指的是否跳過強(qiáng)緩存和協(xié)商緩存,這個(gè)是要看配置的。一般配置 CDN 的話,肯定都有管理控制臺讓你填一些參數(shù)的,比如內(nèi)容、過期時(shí)間、權(quán)重等等,這些參數(shù)的意義在于,瀏覽器與 CDN 節(jié)點(diǎn)交互的時(shí)候,會根據(jù)這些參數(shù)以及你源站的配置來決定是直接返回緩存資源,還是將這個(gè)請求轉(zhuǎn)發(fā)至源站(具體規(guī)則很復(fù)雜,你可以上網(wǎng)找文章詳細(xì)了解一下),以讓源站來決定返回什么樣的資源,其中的過程也會包含上面一段所描述的強(qiáng)緩存與協(xié)商緩存的解析過程。

以上,個(gè)人拙見,大神輕噴。

2017年9月29日 13:15
編輯回答
拮據(jù)

附一張圖
https://segmentfault.com/img/...
clipboard.png

強(qiáng)緩存是直接使用本地緩存(根據(jù)Expires或者Cache-Control來判斷),命中后直接從本地返回。沒命中的話,帶著Last-Modified或Etag和服務(wù)器確認(rèn),在確認(rèn)的網(wǎng)絡(luò)傳輸過程中可能會經(jīng)過CDN服務(wù)器,CDN服務(wù)器如果本地有緩存,可以根據(jù)資源情況返回304(資源有效)或者200(客戶端資源無效,返回CDN服務(wù)器本地資源),這個(gè)和終端服務(wù)器的邏輯是一致的。

Cache-Control中有兩個(gè)屬性和CDN服務(wù)器有關(guān),

  • public,代表可以被所有終端緩存,包括CDN服務(wù)器
  • private,只能被終端瀏覽器緩存,CDN服務(wù)器等中繼服務(wù)器不能緩存。

這3個(gè)概念并不沖突,強(qiáng)緩存是本地緩存,有效期內(nèi)直接使用,失效后要去服務(wù)器驗(yàn)證下(就是你說的協(xié)商緩存),協(xié)商過程中可能經(jīng)過CDN服務(wù)器,就出來了CDN緩存。所以無論你開不開CDN緩存,都不影響強(qiáng)緩存和協(xié)商緩存的邏輯

2017年4月20日 07:55