當前位置:首頁 » 硬碟大全 » 緩存時間查看
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

緩存時間查看

發布時間: 2023-03-08 18:59:08

⑴ 瀏覽器緩存機制

有dns的地方,就有緩存。瀏覽器、操作系統、Local DNS、根域名伺服器,它們都會對DNS結果做一定程度的緩存。

DNS查詢過程如下:

首先搜索瀏覽器自身的DNS緩存,如果存在,則域名解析到此完成。
如果瀏覽器自身的緩存裡面沒有找到對應的條目,那麼會嘗試讀取操作系統的hosts文件看是否存在對應的映射關系,如果存在,則域名解析到此完成。
如果本地hosts文件不存在映射關系,則查找本地DNS伺服器(ISP伺服器,或者自己手動設置的DNS伺服器),如果存在,域名到此解析完成。
如果本地DNS伺服器還沒找到的話,它就會向根伺服器發出請求,進行遞歸查詢。

瀏覽器本地緩存失效後,瀏覽器會向CDN邊緣節點發起請求。類似瀏覽器緩存,CDN邊緣節點也存在著一套緩存機制。CDN邊緣節點緩存策略因服務商不同而不同,但一般都會遵循http標准協議,通過http響應頭中的
Cache-control: max-age 的欄位來設置CDN邊緣節點數據緩存時間。

當瀏覽器向CDN節點請求數據時,CDN節點會判斷緩存數據是否過期,若緩存數據並沒有過期,則直接將緩存數據返回給客戶端;否則,CDN節點就會向伺服器發出回源請求,從伺服器拉取最新數據,更新本地緩存,並將最新數據返回給客戶端。 CDN服務商一般會提供基於文件後綴、目錄多個維度來指定CDN緩存時間,為用戶提供更精細化的緩存管理。

CDN 優勢
CDN節點解決了跨運營商和跨地域訪問的問題,訪問延時大大降低。
大部分請求在CDN邊緣節點完成,CDN起到了分流作用,減輕了源伺服器的負載。

http請求報文(request)
請求行
請求方法  空格  URL 空格  協議版本 回車符 換行符
請求頭(通用信息頭、請求頭、實體頭)
頭部欄位名 冒號  值  回車鍵 換行符
...
頭部欄位名 冒號  值  回車鍵 換行符
空行
回車符   換行符
實體主體(只有post請求有)
主體

http響應報文(response)
狀態行
協議版本  空格  狀態碼 空格  狀態碼描述 回車符 換行符
響應頭部
頭部欄位名 冒號  值   回車符 換行符
...
頭部欄位名 冒號  值   回車符 換行符
空行
回車符   換行符
響應正文
正文

瀏覽器初次向伺服器發起請求後拿到請求結果,會根據響應報文中HTTP頭的緩存標識,決定是否緩存返回的結果,是則將請求結果和緩存標識存入瀏覽器緩存中

瀏覽器每次發起請求,都會現在瀏覽器緩存中查找該請求的結果以及緩存標識
瀏覽器                瀏覽器緩存        伺服器

——————第一次發起http請求——————>

<——沒有該請求的緩存結果和緩存標識————

——————————————發起http請求——————————————>

<——————————返回該請求結果和緩存規則————————————

——將請求結果和緩存標識存入瀏覽器緩存——>

強制緩存就是向瀏覽器緩存查找結果,並根據該結果的緩存規則來決定是否使用該緩存結果的過程

強制緩存的情況分為三種:
1、不存在該緩存結果和緩存標識,強制緩存失效,直接向伺服器發起請求
2、存在該緩存結果和緩存標識,但結果已經失效,強制緩存失效,使用協商緩存
3、存在該緩存結果和緩存標識,且該結果沒有失效,強制緩存生效,直接返回該結果

控制強制緩存的欄位:Expires,Cache-Control

Expires 是 HTTP/1.0 控制緩存的欄位,值為伺服器返回該請求的結果緩存時間
即再次發送請求是,客戶端時間 小於 Expires的值,直接使用緩存結果

Cache-Control 是HTTP/1.1的規則,主要用於控制網頁緩存,主要取值為:
public:所有的內容都緩存(客戶端和代理伺服器都可以緩存)
private:所有內容只有客戶端可以緩存(默認值)
no-cache:客戶端緩存內容,但是是否使用緩存則需要經過協商緩存來驗證決定
no-store:即不使用強制緩存,也不使用協商緩存
max-age=xxx:緩存內容將在xxx秒後失效

Expires 是一個絕對值
Cache-Control 中 max-age 是相對值,解決了 Expires時期 服務端與客戶端 可能出現時間差的問題

註:Expires和Cache-Control同時存在時,只有Cache-Control生效

協商緩存就是強制緩存失效後,瀏覽器攜帶緩存標識向伺服器發起請求,由伺服器根據緩存標識決定是否使用緩存的過程

協商緩存的兩種情況:
1、協商緩存生效,返回304,繼續使用緩存
過程:
瀏覽器                 瀏覽器緩存     伺服器

————————發起http請求————————>

<——該請求的緩存結果失效,只返回緩存標識——

————————攜帶該資源的緩存標識,發起http請求————————>

<—————————————304,該資源無更新————————————

——————獲取該請求的緩存結果——————>

<——————返回該請求的緩存結果——————

2、協商緩存失敗,返回200和請求結果
過程:
瀏覽器                 瀏覽器緩存     伺服器

————————發起http請求————————>

<——該請求的緩存結果失效,只返回緩存標識——

————————攜帶該資源的緩存標識,發起http請求————————>

<————————200,資源已更新,重新返回請求和結果———————

——將該請求結果和緩存標識存入瀏覽器緩存中—>

協商緩存的標識也是在響應報文的HTTP頭中和請求結果一起返回給瀏覽器的

控制協商緩存的欄位:
(1) Last-Modified/If-Modified-Since:Last-Modified是伺服器響應請求是,返回該資源文件在伺服器最後被修改的時間;If-Modified-Since再次發起請求時,攜帶上次返回的Last-Modified的值,伺服器將該欄位值與該資源最後修改時間對比,決定是否用緩存
(2)Etag/If-None-Match:Etag伺服器響應請求時,返回當前資源文件的一個唯一標識,由伺服器生成之;If-None-Match是再次發起請求時,攜帶上次返回的唯一標識Etag的值,伺服器收到後,將該欄位值與該資源在伺服器上的Etag對比,一致 則返回304,否則返回200

註:Etag/If-None-Match優先順序高於Last-Modified/If-Modified-Since,同時存在時只有Etag/If-None-Match生效

瀏覽器緩存分為:內存緩存 和 硬碟緩存

內存緩存特性:
(1)快速讀取:內存緩存會將編譯解析後的文件,存入該進程的內存中,便於下次運行時快速讀取
(2)時效性:一旦關閉進程,進程內存清空

硬碟緩存特性:
永久性:直接寫入硬碟文件中
復雜、緩慢:讀取緩存對該緩存存放的硬碟文件進行I/O操作,重新解析

from memory cache:使用內存中的緩存

from disk cache:使用硬碟中的緩存

瀏覽器讀取順序:memory ——> disk

瀏覽器將js和圖片等文件解析執行後直接存入內存緩存中,F5刷新頁面時,from memory cache(使用內存中的緩存)
css文件存入硬碟中,F5刷新頁面時,from disk cache(使用硬碟中的緩存)

參考文章
https://segmentfault.com/a/1190000017962411
https://www.cnblogs.com/chengxs/p/10396066.html

⑵ 如何將騰訊視頻里的緩存時間轉為本地視頻

緩存後就有本地,刪除了緩存,本地就不存在,除非下載下來。
查看騰訊視頻緩存文件的路徑:
1、打開騰訊視頻;

2、在屏幕右下角任務欄里的騰訊視頻圖標上點滑鼠右鍵,在右鍵菜單中點「設置」;

3、在隨後彈出的設置對話框中選擇「下載設置」,這時右側就會顯示「緩存管理」,其中就包括了緩存文件的存放路徑。如下圖:

拓展資料

騰訊視頻是在線視頻平台,擁有流行內容和專業的媒體運營能力,是聚合熱播影視、綜藝娛樂、體育賽事、新聞資訊等為一體的綜合視頻內容平台,並通過PC端、移動端及客廳產品等多種形態為用戶提供高清流暢的視頻娛樂體驗。

騰訊視頻於2016年底提出了全新的品牌理念——「不負好時光」,以更加年輕化、更能引起用戶情感共鳴的定位全新亮相,並展現了全新品牌標識。秉承「內容為王,用戶為本」的價值觀,騰訊視頻通過此次品牌升級,著力凸顯優質內容的差異化競爭優勢,深化與消費者的情感溝通,持續為觀眾和廣告客戶創造更大價值。

資料來源:網路:騰訊視頻

⑶ 如何查詢緩存時間

對於WEB地理信息系統來說,一個需要特別強調的是系統的響應速度,有許多方法來提高系統的速度,我們今天要提到的是利用緩存來提高系統的速度。例如在執行查詢時,如果前後多次所查詢的得到結果都相同,我們可以將第一次查詢的結果放到內存中緩存中去,第二或第二次調用時,我們可以直接返回緩存的信息,節省了從地圖伺服器中查詢的時間,從而提高了響應的效率。ASP.NET提供了強大的、便於使用的緩存機制,用於將需要大量伺服器資源來創建的對象存儲在內存中。緩存這些類型的資源會大大改進應用程序的性能。緩存是由Cache類實現的,緩存程序是每個應用程序專用的。緩存生存期依賴於應用程序的生存期,重新啟動應用程序後,將重新創建Cache對象。設計Cache類是為了便於使用。可以將項放置在Cache中,並在以後使用簡單的鍵/值對來檢索這些項。Cache類提供了強大的功能,允許自定義如何緩存項以及將他們緩存多長時間。例如,當缺乏系統內存時,緩存會自動移除很少使用的或優先順序較低的項以釋放內存。該技術也成為清理,這是緩存確保過期數據不使用寶貴的伺服器資源的方式之一。當執行清理時,可以只是Cache給予某些項比其他項更高的優先順序。若要指示項的重要性,可以在使用Add或Insert方法添加項時,指定一個CacheItemPritory枚舉值。當使用Add或Insert方法將項添加到緩存時,您還可以建立項的過期策略。可以通過使用DateTime值指定項的確切過期時間(絕對過期時間),來定義項的生存期。也可以使用TimeSpan值指定一個彈性過期時間,彈性過期時間允許根據項的上次訪問時間來指定該項過期之前的運行時間。一旦項過期,便將它從緩存中移除。試圖檢索它的值的行為將返回null,除非該項被重新添加到緩存中。此為,ASP.NET允許根據外部文件、目錄(文件依賴項)或另一個緩存項(鍵依賴項)來定義緩存項的有效性。如果具有關聯依賴項的項發生更改,緩存項便會失效並從緩存中移除。可以使用該技術在項的數據源更改時從緩存中移除這些項。以下例子代碼如何在查詢時利用ASP.NET提供的緩存機制。首先在GetCallbackResult 方法的最前面加入如下代碼,判斷是否存在某一緩存,如果存在(第二次調用相同的操作),則直接將緩存結果返回,如果不存在(首次調用),則不影響程序的執行:// 判斷是否有相應的緩存信息 string cachedResponse = Cache[callbackArg] as string; if (cachedResponse != null) { return cachedResponse; }然後在GetCallbackResult方法返回response字元串之前,加入如下代碼,用於將查詢結果保存到緩存中:TimeSpan cacheDuration = new TimeSpan(0, 0, 999999); Cache.Add(callbackArg, response, null, DateTime.Now.Add(cacheDuration), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.NotRemovable, null);上述代碼通過Cache的Add方法將查詢結果緩存起來。該方法的第一個參數是用於引用該項的緩存鍵;第二個參數是要添加到緩存的項;第三個參數表示文件依賴項或緩存鍵依賴項,當任何依賴項更改時,該對象即無效,並從緩存中移除。如果沒有依賴項,則此參數為空引用;第四個參數是所添加對象將過期並從緩存中移除的時間。如果使用可調過期,則該參數必須為NoAbsoluteExpiration;第五個參數表示最後一次訪問所添加對象時與該對象過期時之間的時間間隔。如果該值等效於20分鍾,則該對象在最後一次被訪問20分鍾之後將過期並從緩存中移除。若果使用絕對過期,則該參數必須為NoSlidingExpiration;第六個參數是對象的相對的優先順序,由CacheItemPriority枚舉表示。緩存在退出對象時使用該值;具有較低優先順序的對象在具有較高優先順序的對象之前被從緩存移除;最後一個參數表示從緩存中移除對象時所調用的委託(如果提供)。當從緩存中刪除應用程序的對象時,可使用它來通知應用程序。

⑷ TTL是緩存時間嗎是域名解析記錄在哪裡看呢

TTL是生效時間,不是域名的解析記錄,這個一般是各個域名商自己設置的,或者採用公認的時間。

⑸ 系列分享之瀏覽器、本地DNS緩存篇

我們在使用瀏覽器訪問互聯網資源時,想獲取指定的服務和信息。首先就要了解瀏覽器是如何定位到我們的站點的。輸入一個域名(如:www.jd.com)瀏覽器會首先從自身的緩存中查詢是否有歷史域名對應的IP並且有效,如果有就使用該緩存通過IP直接訪問到指定的站點。如果沒有則查詢本地的Host緩存,如果有就使用本地的緩存直接訪問站點,沒有則向本地DNS伺服器發起請求查詢,如果本地DNS服務也沒有找到,則向公網DNS服務發起查詢請求獲取對應的有效IP,並返回緩存到瀏覽器和本地緩存中,供後續請求使用。

DNS記錄會有一個ttl值(time to live),單位是秒,意思是這個記錄最大有效期是多少。操作系統緩存會參考ttl值,但是不完全等於ttl值,而瀏覽器DNS緩存的時間跟ttl值無關,每種瀏覽器都使用一個固定值。

DNS查詢請求類型:

1、權威答復:權威答復是返回給客戶的正向答復,並且設置了DNS消息中的權威位。此答復代表從具有權威的DNS伺服器處發出。

2、正向答復:正向答復包含了匹配客戶端解析請求的資源記錄。

3、參考答復:參考答復只在DNS伺服器工作在迭代模式下使用,包含了其他有助於客戶端解析請求的信息。例如,當DNS伺服器不能為客戶端發起的解析請求找到某個匹配值時,則向DNS客戶端發送參考回復,告訴它有助於解析請求的信息。

4、否定答復:否定答復指出權威伺服器在解析客戶端的請求時可能遇到了以下兩種情況之一:

權威DNS伺服器報告客戶端查詢的名字不存在;

權威DNS伺服器報告存在對應的名字,但是不存在指定類型的資源記錄。

DNS伺服器解析返回IP分配策略與客戶端對域名IP選擇策略,無論正向答復還是否定答復,DNS客戶端都將結果保存在自己的本地緩存中

瀏覽器緩存:

瀏覽器在獲取網站域名的實際IP地址後會對其IP進行緩存,減少網路請求的損耗。每種瀏覽器都有一個固定的DNS緩存時間。

參考瀏覽器DNS緩存時間:

本地緩存:

每種操作系統都有自己的DNS緩存時間控制。

1、Windows DNS默認值是MaxCacheTTL,它的默認值是86400s,也就是一天。

2、MacOS遵循DNS協議中的TTL,根據各種網路協議不同對不同的域名採用不同的緩存時間策略。在IPv4包頭中TTL是一個8 bit欄位,它位於IPv4包的第9個位元組。

參考本地DNS緩存時間:

在命令行執行nslookup指令可以看到一個域名對應的IP地址,並且可以幫助我們判斷是否有DNS劫持。隨便解析一個網站,比如

www.jd.com 應該返回的是正常的地址

然後再解析一個不存在的網站,比如123123.aaaa.com.cn如果返回的結果是

DNS request timed out.

timeout was 2 seconds.

那麼證明你的DNS沒有被劫持。

如果返回的結果是一個IP地址,比如說網通的返回地址是230.xxx.xxx.xxx,那麼證明你的DNS被劫持了。

通過了解瀏覽器、本地緩存可以幫助我們更好的為用戶服務。

1、大型的互聯網公司都有IP流量監控,當發生網路故障或劫持時可以第一時間發現。

2、頁面是我們與用戶面對面溝通的渠道和方式,當我們的網頁和服務呈現在用戶面前時,我們要了解我們提供的服務是如何影響到用戶的體驗的,比如我們前端頁面的JS、CSS等文件的動態版本號處理方式結合緩存是如何變化的,每次發版會對什麼樣的用戶有影響,都需要嚴謹。

3、機房內部的各個應用程序服務,比如Zookeeper、Redis、RPC、DB在DNS緩存變化時,可能引起的網路抖動,是否會對用戶請求造成影響,也是我們必須要注意的問題。