我正在使用嵌入式系統上的自定義網絡服務器,並有一些問題正確設置我的HTTP標頭進行緩存。自定義網絡服務器緩存
我們的網絡服務器將所有動態內容生成爲XML,我們使用半靜態XSL文件來顯示一些動態JSON請求以及半靜態圖像。我說「半靜態」是因爲當我們需要進行可能會更改XSL和圖像文件的固件更新時,會出現問題。
以下是需要做的事情:緩存XSL和圖像文件,不緩存XML和JSON響應。我對HTTP響應完全控制,我目前:
- 使用與XSL和圖像文件的ETag,使用修改時間和大小來生成ETag的
- 設置的Cache-Control:在無緩存XML和JSON響應
正如我所說的,一切當XSL和圖像文件有時緩存工作花花公子,直到固件更新。我已經看到它與最新版本的Firefox和Safari一起工作良好,但IE瀏覽器遇到了一些問題。
我知道這個問題的一個解決方案是簡單地在每個版本後重命名XSL和圖像文件(例如logo-v1.1.png,logo-v1.2.png)並將Expires標頭設置爲日期在將來,但這將是困難的XSL文件,我想避免這種情況。
注意:單元上有一個時鐘,但需要用戶進行設置,並且可能不是100%可靠,這可能會導致使用ETags時出現緩存問題。
我應該採用什麼樣的最佳做法?我希望避免儘可能多的網絡服務器請求,但在軟件更新之後使舊的XSL和圖像文件無效是首要任務。