Http-Headers

如何將記憶體設置為永不過期並最小化 Nginx 中的請求?

  • August 20, 2012

我有一個記憶體失效系統,所以我需要將 css|js 的記憶體設置為永不過期。

我試過這個

location ~* \.(js|css)$ { # |png|jpg|jpeg|gif|ico
 expires max;
 #log_not_found off; # what's this for?
}

這就是我在螢火蟲中看到的:

在此處輸入圖像描述

如您所見,請求仍在發出,儘管它們只收到“未修改”響應。但我想完全避免它們,這可能嗎?

另外,我讀到超過 1 年的過期在標準中被或將被視為無效。真的嗎?

編輯

讓我完成@DisgruntledGoat 的回答:

  • 對 url 的正常訪問,例如點擊連結或在 url 欄中 + 輸入:記憶體有效,該 url 僅發出 1 個請求,資產發出 0 個請求。
  • F5 重新載入:發出了許多請求,但您收到所有資產的“304 未修改”響應,因此不會下載它們
  • ctrl + F5 無記憶體重新載入:許多請求,全部 ‘200 成功’,再次下載所有資產。

您是否正在重新載入頁面以進行測試?當您這樣做時,瀏覽器通常會再次請求每個文件(至少 Chrome 會這樣做)。如果您改為點擊指向站點上不同頁面的連結,則瀏覽器應該只使用記憶體而不是重新請求文件。

此外,根據規範,該Expires指令的日期只能在未來一年,因此 2037 是無效值。話雖如此,瀏覽器通常可以接受遙遠的未來值。

這不能以您嘗試的其他方式完成。這取決於客戶端瀏覽器如何處理記憶體。設置記憶體不應超過修改日期Source一年以上。

Nginx 非常有效,如果您每天有 < 1,000,000 個訪問者,您真的不必擔心發送到 Nginx 的請求。如果是關於頻寬,如果瀏覽器獲得 304 響應,它仍然使用其記憶體中的數據,因此不會溢出頻寬。

引用自:https://serverfault.com/questions/419217