2013-10-17 53 views
0

在我看來,當我從頁面A瀏覽到頁面B時,如果B頁面在A頁面中具有相同的js/css/img/etc資源,瀏覽器應該使用來自A因爲它在同一個會話中,所以這將最終發出304請求(如果資源已經設置了exprie時間,它將不會請求)。Firefox 4.0.1忽略過期HTTP頭

但是,我今天遇到一個問題。

在Firefox中,當我瀏覽網頁A,在螢火蟲瀑布是

waterfall of Page A

但是,當我點擊一個鏈接轉到頁B,在螢火蟲瀑布是

enter image description here

js/css仍然從服務器下載,而不是302請求。

我的Firefox版本是4.0.1,並且緩存未禁用。

此行爲在Firefox中是否正確?

+2

對於SO imo來說,這不是一個真正的問題。無論哪種方式,它都取決於您的客戶端設置和服務器的設置(服務器可以說明如何緩存文件)。此外,你爲什麼使用Firefox 4.0.1? – Kippie

+0

@Kippie我們的客戶端應用程序基於此版本,不能更改。我下載一個新版本並嘗試 – simplemx

+0

@Kippie我在Firefox 24中檢查它,所有資源都在BFCache中,符合我的意見。但是在舊版本Firefox的這是如此奇怪。 – simplemx

回答

3

您的意思是一個304 Not Modified響應。

您只能在條件請求上獲得該響應,如果先前對相同URI的請求已使用適當的緩存標頭進行響應,則該請求只會由瀏覽器發出。

參見例如HTTP Caching,A Beginner's Guide to HTTP Cache Headers等等。

+0

thx,我的意思是304並輸入錯誤 - – simplemx

1

我通過添加緩存控制標頭來解決這個問題。 Thx for @CodeCaster的建議。

在我的情況下,所有的js/css都是從Apache下載的。我爲這些靜態內容設置了過期標題。

但是,這個舊版本的Firefox似乎觸發了一個奇怪的請求,忽略了expires標籤。