Nginx作為靜態資源web服務之快取原理

2022-04-29 05:30:07 字數 1263 閱讀 3612

大致理一下http瀏覽器快取原理:

瀏覽器第一次請求伺服器,此時瀏覽器肯定沒有快取,則直接呼叫伺服器端,伺服器在返回的資訊的資訊頭中新增 etag和last-modified引數資訊,返回給客戶端瀏覽器快取。

然後瀏覽器以後的請求,先判斷是否有快取,那麼怎麼判斷有快取呢,有三步:

(1)是否過期  

(2)對etag資訊對比 ,etag:  就是乙個生成的字串

(3)對last-modified資訊對比;last-modified:服務端最後一次修改的時間。

如果沒有過期,則將資訊直接返回回去,如果過期了,則將請求傳送到服務端,此時request的頭資訊中帶著etag和last-modified資訊,responose頭資訊中也帶著這兩個引數,如果一致,則表示要訪問的資源沒有發生改變,直接返回304,如果不一致,則表明資源改變,會請求服務端,返回200。

具體的原理可以參考:

下面通過配置 快取過期時間來讓其實現快取

配置語法:expires 【modified】time;

expires epoch | max | off;

預設配置:expires off;

配置路徑:http、server、location、if in location

使用demo測試

1. 修改default.conf配置檔案,新增如下配置,暫時不新增快取配置

由上圖可以看出,第一次請求是沒有快取的,訪問伺服器返回200,並且再返回的資訊頭中返回了以上的兩個引數 etag和last-modified。下面我們重新整理,再來看看效果

3. 重新整理網頁,檢視狀態

由上圖看出,第二次請求,返回的狀態是304,在請求資訊頭中有上圖兩個引數,與服務端返回的引數對比,發現是一致的,所以直接返回 304。下面我們配置快取過期時間

4. 配置過期時間

5. 重新整理**,看看效果

由上圖看出,伺服器端返回的引數中有了過期時間,以及expires引數資料,因此過期時間配置成功。

Nginx作為靜態資源Web服務

nginx作為靜態資源 cdn分發資源 配置語法 配置語法 將多個資源一起傳送 提高效率 作用 sendfile開啟的情況下 提高網路包的傳輸效率 配置語法 壓縮 nginx壓縮模組 http gzip static module 預讀gzip功能 http gunzip module 應用支援gu...

Nginx作為靜態資源web服務之檔案讀取

檔案讀取會使用到以下幾個配置 1.sendfile 使用nginx作為靜態資源服務時,通過配置sendfile可以有效提高檔案讀取效率,設定為on表示啟動高效傳輸檔案的模式。sendfile可以讓nginx在傳輸檔案時直接在磁碟和tcp socket之間傳輸資料。如果這個引數不開啟,會先在使用者空間...

nginx學習 七 nginx提供靜態資源服務

這裡準備了乙個資料夾,裡面放入了乙個img資料夾和index.html檔案,將檔案上傳到home下。這裡我們從新起個埠 server error page 500 502 503 504 50x.html location 50x.html 注意這裡訪問的時候,是訪問 home static kev...