摘要:緩存瀏覽器先向網(wǎng)關(guān)發(fā)起請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。
web緩存作用
減少網(wǎng)絡(luò)帶寬消耗
降低服務(wù)器壓力
減少網(wǎng)絡(luò)延遲,加快頁(yè)面打開速度
數(shù)據(jù)庫(kù)數(shù)據(jù)緩存:為了提供查詢的性能,會(huì)將查詢后的數(shù)據(jù)放到內(nèi)存中進(jìn)行緩存,下次查詢時(shí),直接從內(nèi)存緩存直接返回,提供響應(yīng)效率
代理服務(wù)器緩存:代理服務(wù)器是瀏覽器和源服務(wù)器之間的中間服務(wù)器,瀏覽器先向這個(gè)中間服務(wù)器發(fā)起Web請(qǐng)求,經(jīng)過(guò)處理后(比如權(quán)限驗(yàn)證,緩存匹配等),再將請(qǐng)求轉(zhuǎn)發(fā)到源服務(wù)器。
CDN緩存:瀏覽器先向CDN網(wǎng)關(guān)發(fā)起Web請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。從瀏覽器角度來(lái)看,整個(gè)CDN就是一個(gè)源服務(wù)器
瀏覽器端緩存
Web應(yīng)用層緩存
HTTP信息頭中包含Cache-Control:no-cache,pragma:no-cache,或Cache-Control:max-age=0等告訴瀏覽器不用緩存的請(qǐng)求
需要根據(jù)Cookie,認(rèn)證信息等決定輸入內(nèi)容的動(dòng)態(tài)請(qǐng)求是不能被緩存的
經(jīng)過(guò)HTTPS安全加密的請(qǐng)求
POST請(qǐng)求無(wú)法被緩存
HTTP響應(yīng)頭中不包含Last-Modified/Etag,也不包含Cache-Control/Expires的請(qǐng)求無(wú)法被緩存
Web開發(fā)者可以在HTML頁(yè)面的
節(jié)點(diǎn)中加入標(biāo)簽,代碼如下:上述代碼的作用是告訴瀏覽器當(dāng)前頁(yè)面不被緩存,每次訪問(wèn)都需要去服務(wù)器拉取。使用上很簡(jiǎn)單,但只有部分瀏覽器可以支持,而且所有緩存代理服務(wù)器都不支持,因?yàn)榇聿唤馕鯤TML內(nèi)容本身。
緩存有關(guān)的HTTP消息報(bào)頭
Cache-Control與Expires的作用一致,都是指明當(dāng)前資源的有效期,控制瀏覽器是否直接從瀏覽器緩存取數(shù)據(jù)還是重新發(fā)請(qǐng)求到服務(wù)器取數(shù)據(jù)。只不過(guò)Cache-Control的選擇更多,設(shè)置更細(xì)致,如果同時(shí)設(shè)置的話,其優(yōu)先級(jí)高于Expires。
配置Last-Modified/ETag的情況下,瀏覽器再次訪問(wèn)統(tǒng)一URI的資源,還是會(huì)發(fā)送請(qǐng)求到服務(wù)器詢問(wèn)文件是否已經(jīng)修改,如果沒(méi)有,服務(wù)器會(huì)只發(fā)送一個(gè)304回給瀏覽器,告訴瀏覽器直接從自己本地的緩存取數(shù)據(jù);如果修改過(guò)那就整個(gè)數(shù)據(jù)重新發(fā)給瀏覽器;
Etag的出現(xiàn)主要是為了解決幾個(gè)Last-Modified比較難解決的問(wèn)題:
Last-Modified標(biāo)注的最后修改只能精確到秒級(jí),如果某些文件在1秒鐘以內(nèi),被修改多次的話,它將不能準(zhǔn)確標(biāo)注文件的新鮮度
如果某些文件會(huì)被定期生成,當(dāng)有時(shí)內(nèi)容并沒(méi)有任何變化,但Last-Modified卻改變了,導(dǎo)致文件沒(méi)法使用緩存
有可能存在服務(wù)器沒(méi)有準(zhǔn)確獲取文件修改時(shí)間,或者與代理服務(wù)器時(shí)間不一致等情形
Cache-Control/Expires的優(yōu)先級(jí)要高于Last-Modified/ETag。即當(dāng)本地副本根據(jù)Cache-Control/Expires發(fā)現(xiàn)還在有效期內(nèi)時(shí),則不會(huì)再次發(fā)送請(qǐng)求去服務(wù)器詢問(wèn)修改時(shí)間(Last-Modified)或?qū)嶓w標(biāo)識(shí)(Etag)了。
使用Cache-Control/Expires會(huì)配合Last-Modified/ETag一起使用,因?yàn)榧词狗?wù)器設(shè)置緩存時(shí)間, 當(dāng)用戶點(diǎn)擊“刷新”按鈕時(shí),瀏覽器會(huì)忽略緩存繼續(xù)向服務(wù)器發(fā)送請(qǐng)求,這時(shí)Last-Modified/ETag將能夠很好利用304,從而減少響應(yīng)開銷。
當(dāng)用戶在按F5進(jìn)行刷新的時(shí)候,會(huì)忽略Expires/Cache-Control的設(shè)置,會(huì)再次發(fā)送請(qǐng)求去服務(wù)器請(qǐng)求,而Last-Modified/Etag還是有效的,服務(wù)器會(huì)根據(jù)情況判斷返回304還是200;而當(dāng)用戶使用Ctrl+F5進(jìn)行強(qiáng)制刷新的時(shí)候,只是所有的緩存機(jī)制都將失效,重新從服務(wù)器拉去資源
總結(jié)一下瀏覽器請(qǐng)求的過(guò)程:
Etag發(fā)送過(guò)去的頭名字叫:If-None-Match
Last-Modified發(fā)送過(guò)去的頭名字叫:If-Modified-Since
參考文獻(xiàn):
Web緩存機(jī)制系列
瀏覽器緩存機(jī)制
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/112242.html
摘要:緩存瀏覽器先向網(wǎng)關(guān)發(fā)起請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。 web緩存作用 減少網(wǎng)絡(luò)帶寬消耗降低服務(wù)器壓力減少網(wǎng)絡(luò)延遲,加快頁(yè)面打開速度 Web緩存的類型 數(shù)據(jù)庫(kù)數(shù)據(jù)緩存:為了提供查詢的性能,會(huì)將查詢后的數(shù)據(jù)放到內(nèi)存中進(jìn)行緩存,下次查詢時(shí),直...
摘要:緩存服務(wù)器是代理服務(wù)器的一種,并歸類在緩存代理類型中。若判斷緩存失效,緩存服務(wù)器將會(huì)再次從源服務(wù)器上獲取新資源。另外,和緩存服務(wù)器相同的一點(diǎn)是,當(dāng)判定緩存過(guò)期后,會(huì)向源服務(wù)器確認(rèn)資源的有效性。 與 HTTP 協(xié)作的 Web 服務(wù)器 一臺(tái) Web 服務(wù)器可搭建多個(gè)獨(dú)立域名的 Web 網(wǎng)站,也可作為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率。 一. 用單臺(tái)虛擬主機(jī)實(shí)現(xiàn)多個(gè)域名 HTTP/1.1 規(guī)...
摘要:緩存服務(wù)器是代理服務(wù)器的一種,并歸類在緩存代理類型中。若判斷緩存失效,緩存服務(wù)器將會(huì)再次從源服務(wù)器上獲取新資源。另外,和緩存服務(wù)器相同的一點(diǎn)是,當(dāng)判定緩存過(guò)期后,會(huì)向源服務(wù)器確認(rèn)資源的有效性。 與 HTTP 協(xié)作的 Web 服務(wù)器 一臺(tái) Web 服務(wù)器可搭建多個(gè)獨(dú)立域名的 Web 網(wǎng)站,也可作為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率。 一. 用單臺(tái)虛擬主機(jī)實(shí)現(xiàn)多個(gè)域名 HTTP/1.1 規(guī)...
閱讀 2488·2021-11-24 09:39
閱讀 3411·2021-11-15 11:37
閱讀 2261·2021-10-08 10:04
閱讀 3972·2021-09-09 11:54
閱讀 1888·2021-08-18 10:24
閱讀 1052·2019-08-30 11:02
閱讀 1799·2019-08-29 18:45
閱讀 1659·2019-08-29 16:33