當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)
2021-09-29 14:46:45

author:咔咔

瀏覽器緩存:

HTTP協(xié)議定義的緩存機(jī)制(如:Expires;Cache-control等)

瀏覽器無(wú)緩存:

請(qǐng)求步驟

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)_服務(wù)端

瀏覽器有緩存:

請(qǐng)求步驟

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)_數(shù)據(jù)更新_02

檢驗(yàn)過(guò)期機(jī)制:

?

Expires是在http1.0版本,Cache-Control(max-age)是在http1.1版本

max-age過(guò)期時(shí)間

Etag跟last-Modified是本地緩存失效后,在服務(wù)端檢驗(yàn)的倆個(gè)參數(shù),last-Modified后跟的具體時(shí)間,Etag后跟的是一個(gè)報(bào)文,這個(gè)報(bào)文在本地跟服務(wù)端都會(huì)產(chǎn)生一份

由于last-Modified的時(shí)間只精確到秒,所以有時(shí)會(huì)存在在秒內(nèi)的數(shù)據(jù)更新,這個(gè)時(shí)候就需要Etag這個(gè)參數(shù)

這倆個(gè)參數(shù)都是會(huì)在本地跟服務(wù)端同時(shí)產(chǎn)生,當(dāng)用戶在次請(qǐng)求的時(shí)候,會(huì)拿著倆個(gè)參數(shù)做對(duì)比,如果相同會(huì)直接返回,并且狀態(tài)是304

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)_服務(wù)端_03

實(shí)現(xiàn)過(guò)程

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)_Nginx_04

場(chǎng)景演示:

// 配置語(yǔ)法

添加Cache-Control、Expires頭

Syntax:expires [modifies] time;

expires epoch | max | off

Default:expires off;

Context:http,sercver,localtion,if in location

我們?cè)诜?wù)器定義了一個(gè)kaka.html文件

現(xiàn)在訪問(wèn)一下

我們可以看到訪問(wèn)狀態(tài)是200

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)_緩存_05

下來(lái)我們配置一下nginx.conf

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)_Nginx_06

再來(lái)測(cè)試

這個(gè)時(shí)候就已經(jīng)成功了

【Nginx】第十一節(jié) 應(yīng)用場(chǎng)景之靜態(tài)資源WEB服務(wù)之瀏覽器緩存及實(shí)現(xiàn)_Nginx_07

本文摘自 :https://blog.51cto.com/k

開通會(huì)員,享受整站包年服務(wù)立即開通 >