缓存原理
1、緩存的概念
緩存指的是將需要頻繁訪問的網(wǎng)絡(luò)內(nèi)容存放在離用戶較近、訪問速度更快的系統(tǒng)中,以提高內(nèi)容訪問速度的一種技術(shù)。緩存服務(wù)器就是存放頻繁訪問內(nèi)容的服務(wù)器。
2、緩存的作用
a. 減少了冗余的數(shù)據(jù)傳輸,可以節(jié)省寬帶; b.減少了服務(wù)器的負擔(dān),優(yōu)化性能; c.加快了內(nèi)容訪問的速度。
3、web緩存服務(wù)器的原理
web緩存服務(wù)器的應(yīng)用模式主要是正向代理和反向代理。
正向代理(Proxy)模式是代理網(wǎng)絡(luò)用戶訪問Internet,客戶端將本來要直接返送到internet上源服務(wù)器的鏈接請求發(fā)送給代理服務(wù)器處理。正向代理的目的是加速用戶的在使用瀏覽器訪問Internet時的請求響應(yīng)時間,并提高廣域網(wǎng)線路的利用率。正向代理瀏覽器無需和該站點建立聯(lián)系,只訪問到web緩存即可。通過正向代理大大提高了后續(xù)用的的訪問速速,使他們無需再穿越internet,只要從本地web緩存就可以獲取所需要的信息,避免了帶寬問題,同時可以大量減少重復(fù)請求在網(wǎng)絡(luò)上的傳輸,從而降低網(wǎng)絡(luò)流量,節(jié)省資費。
反向代理(Reverse Proxy)模式是針對web服務(wù)器加速功能的,在該模式中,緩存服務(wù)器放置在web應(yīng)用服務(wù)器的前面,當(dāng)用戶訪問web應(yīng)用服務(wù)器的時候,首先經(jīng)過緩存服務(wù)器,并肩用戶的請求和易用服務(wù)器應(yīng)答的內(nèi)容寫入緩存服務(wù)器中,從而為后續(xù)用戶的訪問提供更快的響應(yīng)。
4、緩存區(qū)別
兩種主要的web緩存:
直接緩存:將用戶頻繁訪問的來自Internet服務(wù)器的web對象的拷貝保存在企業(yè)本地網(wǎng)絡(luò)中。
反向緩存:企業(yè)內(nèi)部web服務(wù)器的web對象的拷貝保存在企業(yè)網(wǎng)絡(luò)邊緣的代理服務(wù)器上以提高外界訪問企業(yè)站點的性能。
web緩存根據(jù)不同等級配置:
本地緩存:將web對象緩存的拷貝保存在本地計算機中。大多數(shù)流行的web瀏覽器默認情況下保留一個先前訪問對象的緩存。
本地緩存拷貝只是在用戶頻繁的從同一臺機器訪問頁面時有用。
代理緩存:代理服務(wù)器是為公司內(nèi)的多個用戶/客戶計算機緩存web對象的單獨機器。它們是位于客戶端和托管的web服務(wù)器之間的計算機,而且他們比本地緩存效率更高,因為在企業(yè)本地網(wǎng)絡(luò)中的任何用戶或計算機訪問某個web對象時,緩存拷貝對想訪問該對象的任何其他用戶/計算機是可用的,無需到internet服務(wù)器上再次下載它。代理緩存可以在網(wǎng)絡(luò)邊緣與防火墻結(jié)合使用。
5、Http緩存
Http緩存指的是當(dāng)web請求抵達緩存時,如果本地有“已緩存”的副本,就可以從本地存儲設(shè)備而不是從原始服務(wù)器中提取這個文檔。
http中具有緩存功能的是瀏覽器緩存,以及緩存代理服務(wù)器。
6. 緩存新鮮度
web服務(wù)器主要是通過2種方式來判斷瀏覽器緩存是否是最新的。
第一種,瀏覽器把緩存文件的最后修改時間通過header?“If-Modified-Since”來告訴web服務(wù)器。
第二種,瀏覽器把緩存文件的Etag,通過header “If-None-Match”,來告訴web服務(wù)器。
通過最后修改時間,判斷緩存新鮮度:
1)瀏覽器客戶端想請求一個文檔,? 首先檢查本地緩存,發(fā)現(xiàn)存在這個文檔的緩存,? 獲取緩存中文檔的最后修改時間,通過: If-Modified-Since, 發(fā)送Request給Web服務(wù)器。
2)Web服務(wù)器收到Request,將服務(wù)器的文檔修改時間(Last-Modified): 跟request header 中的,If-Modified-Since相比較, 如果時間是一樣的, 說明緩存還是最新的, Web服務(wù)器將發(fā)送304 Not Modified給瀏覽器客戶端, 告訴客戶端直接使用緩存里的版本。
3)假如該文檔已經(jīng)被更新了。Web服務(wù)器將發(fā)送該文檔的最新版本給瀏覽器客戶端。
通過ETag,判斷緩存新鮮度:
ETag是Web服務(wù)端產(chǎn)生的,然后發(fā)給瀏覽器客戶端。瀏覽器客戶端是不用關(guān)心Etag是如何產(chǎn)生的。
為什么使用ETag呢? 主要是為了解決Last-Modified 無法解決的一些問題。
1)某些服務(wù)器不能精確得到文件的最后修改時間, 這樣就無法通過最后修改時間來判斷文件是否更新了。
2)?某些文件的修改非常頻繁,在秒以下的時間內(nèi)進行修改. Last-Modified只能精確到秒。
3)?一些文件的最后修改時間改變了,但是內(nèi)容并未改變。 我們不希望客戶端認為這個文件修改了。
7.瀏覽器可以設(shè)置不是用緩存
方法一:ctrl+F5強制刷新瀏覽器;方法二:設(shè)置IE;
設(shè)置IE的步驟:
打開IE,點擊工具欄上的,“工具”->Internet選項->常規(guī)->瀏覽歷史記錄? 設(shè)置,選擇“從不”,然后保存。之后點擊“刪除”,把Internet臨時文件都刪掉(IE緩存的文件就是Internet臨時文件)。
8.按F5刷新瀏覽器與地址欄輸入地址后回車的區(qū)別
按F5刷新瀏覽器,瀏覽器會去web服務(wù)器驗證緩存。
在地址欄輸入網(wǎng)址后回車,瀏覽器會直接使用有效的緩存,而不會發(fā)http request 去服務(wù)器驗證緩存,這種情況叫做緩存命中。
?
總結(jié)
- 上一篇: chrome frame 在 ifram
- 下一篇: DLL注入之修改PE静态注入