比方說,我必須提供我的網站,可以隨時更新動態內容。我想要緩存數據以獲得最佳性能。如何設置Cache-Control標題以緩存動態內容?
我認爲最準確的做法是隻要數據沒有改變就將數據保存在緩存中。所以它涉及到使用no-cache
選項。
問題是我不知道這是否是一個不錯的選擇。每次有人請求這些數據時,緩存服務器都會請求原始服務器,並詢問自那時起數據是否已更改。所以我不知道no-store
選項的差別在哪裏,數據根本沒有被緩存(就性能而言)。我的意思是,我認爲bandwitdh卷將用相當的方式相當(我是對吧?)
因此,如果每個單一時間的請求,我的緩存服務器必須檢查源服務器,所以什麼是與直接請求源服務器的區別?
是否有任何選項可以設置緩存,以便只在發生更新時才能獲取新數據?
感謝這就是我一直在尋找。你認爲這些解決方案能否給我帶來與製作「基本緩存」相同的優勢,還是會使用一些額外的bandwitdh? – Jack
頭允許瀏覽器管理自己的緩存,你不應該需要任何東西。發送的HEAD請求的開銷很小,以檢查內容是否仍然有效,但這些都是最小的,並且可能是新內容下載時總帶寬的一小部分。你可以通過調整'Cache-Control'頭部來修改客戶端檢查更新的頻率 - 例如在'最大年齡= 60'選項說的內容被視爲新的5分鐘 - 見https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control了更多的選擇。 –
請注意,大多數HTTP客戶端在發送完整的GET請求之前不會發送HEAD請求,因爲它具有已知的資源實體標記。它只會發送帶有'If-None-Match'頭部的GET。 – idbehold