了解:
一、強快取:只要訪問過該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時 不管是否...