Http-Headers
如何將記憶體設置為永不過期並最小化 Nginx 中的請求?
我有一個記憶體失效系統,所以我需要將 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 響應,它仍然使用其記憶體中的數據,因此不會溢出頻寬。