nginx實戰2 瀏覽器設定快取

2022-02-01 09:33:23 字數 1828 閱讀 8055

語法:expires [time|epoch|max|off

預設值:off

expires指令控制http應答中的「expires」和「cache-control」header頭部資訊,啟動控制頁面快取的作用

time引數---》time:可以使用正數或負數

「expires」頭標的值將通過當前系統時間加上設定time值來設定。

epoch:--->epoch:指定「expires」的值為 1january,1970,00:00:01 gmt

max:------>max:指定「expires」的值為31december2037 23:59:59gmt,""cache-control"的值為10年。-1:指定「expires」的值為當前伺服器時間減去1s,即永遠過期。

off:--------->off:不修改「expires」和"cache-control"的值

cache-control是用max-age指令指定元件被快取多久。(在瀏覽器header頭部有)

負數引數:表示cache-control:no-cache

整數或者零:表示cache-control:max-age=' '為您設定的時間秒數。

另外:如果不想讓**或瀏覽器快取,加no-cache引數或private引數:

# expires 1d;

add_header cache-control no-cache;

add_header cache-control private;

當我訪問乙個**的時候,看狀態碼全是200

點選開檢視關鍵引數:

第二次去訪問:

變成了304

檢視:

這時返回的狀態碼是304,而在請求中比第一次多了if-modified-since頭,和原始伺服器中的last-modified製作比較,所以實現瀏覽器快取並判斷是否過期。

簡單的說,last-modified 與if-modified-since 都是用於記錄頁面最後修改時間的 http 頭資訊,

只是last-modified 是由伺服器往客戶端傳送的 http 頭,

而 if-modified-since則是由客戶端往伺服器傳送的頭,

可以看到,再次請求本地存在的 cache 頁面時,客戶端會通過 if-modified-since頭將先前伺服器端發過來的 last-modified最後修改時間戳傳送回去,這是為了讓伺服器端進行驗證,通過這個時間戳判斷客戶端的頁面是否是最新的,如果不是最新的,則返回新的內容,

如果是最新的,則返回304告訴客戶端其本地cache的頁面是最新的,

於是客戶端就可以直接從本地載入頁面了,這樣在網路上傳輸的資料就會大大減少,同時也減輕了伺服器的負擔。

1

知識寫了location

9

參考:

Nginx設定瀏覽器快取

在location或if段裡,來寫.格式 expires 30s expires 30m expires 2h expires 30d 注意 伺服器的日期要準確,如果伺服器的日期落後於實際日期,可能導致快取失效 另 304 也是一種很好的快取手段 原理是 伺服器響應檔案內容是,同時響應etag標籤 ...

nginx 設定本地瀏覽器快取檔案

瀏覽器快取 browser caching 是為了加速瀏覽並節約網路資源,瀏覽器在使用者磁碟上對最近請求過的文件進行儲存。nginx可以通過 expires 指令來設定瀏覽器的header 語法 expires time epoch max off 預設值 expires off 作用域 使用本指令...

利用nginx設定瀏覽器協商快取

強快取與協商快取的區別 強快取 瀏覽器不與服務端協商直接取瀏覽器快取 協商快取 瀏覽器會先向伺服器確認資源的有效性後才決定是從快取中取資源還是重新獲取資源 協商快取運作原理 現在有乙個這樣的業務情景 後端的靜態資源會不定時地發生更新,而因為瀏覽器預設使用強快取,會預設從瀏覽器快取中取到過時的資源。現...