Nginx配置瀏覽器快取

2021-10-21 19:42:49 字數 1409 閱讀 1375

了解:

一、強快取:只要訪問過該url,再次訪問時,不再向伺服器傳送請求,直接從快取中請求資源。

涉及兩個響應頭配置:

<- cache-control: max-age=600 或者 設定為 ---- no-store (不快取) no-cache (不使用強快取)

http1.1以後增加的,max-age設定的強快取的過期時間,600表示600毫秒。

<- expires: mon,4 sep 2021 09:02:20 gmt

http1.0以後增加的,

以上當兩者同時存在時,cache-control起作用。

一般不希望強快取的是:index.html或者所有的html檔案。

可強快取的是:js、css,因為每次打包後,都會有個隨機數,如果變化一定會重新發生請求。

二、協商快取:第一次訪問時,也會進行快取,但再次訪問時,均會向伺服器傳送請求,詢問是否發生變化,伺服器會返回code表示是否發生了變化,例如 若304則無變化,若200則伺服器會將新的內容傳送過來,瀏覽器再次進行快取。

涉及兩個響應頭配置(1和3)及兩個請求頭配置(2和4):

<- last-modified: fri, 07 aug 2021 02:35:59 gmt

-> if-modified-since: fri,07 aug 2021 02:35:59 gmt

通過時間判斷

第一次請求伺服器時,伺服器會返回給瀏覽器該檔案最近一次修改的時間,及內容。

當再次請求伺服器時,會通過上面帶上改快取檔案的上一次修改的時間,伺服器收到後,會根據這個修改時間 判斷是否變化了,若無變化,伺服器返回304,直接讀取快取即可。

<- etag: w/「512cbe0f-2382」

-> if-none-match: w/「5f2cbe0f-2382」

通過hash值判斷

etag這一對兒與上面類似,只是後面跟著的是hash值,是乙個唯一標誌。過程與上面一樣。

對比兩種判斷方式,當通過時間判斷時,檔案有可能修改的時間發生了變化,但是檔案的內容並沒有發生變化;當通過hash值判斷時,只要hash值變化了,檔案的內容就一定發生了變化。

記得每次修改配置檔案後,需要重啟nginx。nginx -s reload

以下均是修改nginx.conf配置檔案中的某一模組內容。

1、配置gzip(進行檔案壓縮)和etag(協議快取)

http
2、配置強快取
server 

瀏覽器與 nginx 快取

cache control public,max age 51600 connection keep alive content type text html charset utf 8 date tue,05 feb 2019 14 28 26 gmt expires wed,06 feb 201...

Nginx瀏覽器快取篇

環境 centos7 nginx 1.16.0 expires原理 給http新增cache control expires頭 expires指令控制http應答中的 expires 和 cache control header頭部資訊,啟動控制頁面快取的作用 time 可以使用正數或負數。expi...

Nginx與瀏覽器快取

nginx與瀏覽器快取 一 瀏覽器對快取的處理 internet選項 控制請求伺服器策略 是忽略資源的快取策略的情況下額外強制請求伺服器的意思。檢查儲存的頁面較新版本 1.每次訪問網頁時 不管是否有快取 資源狀態是否過期,都會再次請求伺服器。2.每次啟動internet explorer時 不管是否...