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

瀏覽器存放緩存

發布時間: 2022-10-29 20:46:30

❶ 瀏覽器緩存(http緩存)

瀏覽器緩存有兩種:強制緩存和協商緩存

向瀏覽器緩存中查找請求結果,根據【緩存規則】決定是否使用該結果。

強制緩存失效後,攜帶緩存標識請求伺服器,伺服器根據緩存標識判斷是否使用緩存

當瀏覽器向伺服器發送請求的時候,伺服器會將緩存規則放入HTTP響應的報文的HTTP頭中和請求結果一起返回給瀏覽器(ps:下文說的時間點均為類似:Sat Aug 14 2021 11:01:52,秒級)

兩個欄位:Expires和Cache-Control,優先順序:Cache-Control > Expires,客戶端比較時間

Expires :HTTP/1.0,返回值為【到期時間點】,再次請求,客戶端的時間< Expires,直接用緩存(ps:客戶端與伺服器端時間可能存在誤差,出問題)

Cache-Control :HTTP/1.1,有以下欄位

Last-Modified / If-Modified-Since 和 Etag / If-None-Match,優先順序Etag > Last-Modified,伺服器比較時間
Last-Modified(服務端返回客戶端) / If-Modified-Since(客戶端傳入服務端) :兩個值相同,表示:資源文件在伺服器最後被修改的時間【時間點】。

Etag(服務端返回客戶端) / If-None-Match(客戶端傳入服務端) ,兩個值相同,為當前資源文件的一個唯一標識(由伺服器生成)

Etag什麼時候用
雅虎禁用了Etag:因為ETag的值和伺服器有關,那麼對於同樣的文件,可能下次請求的時候是發給不同的伺服器,結果也會重新發送數據,所以就會影響網頁載入速度,增加伺服器的壓力(但Last-Modified也與伺服器有關)
主要解決的問題:

瀏覽器的每個tab都是一個進程
兩個緩存的地方 from memory cache(內存緩存) from disk cache(硬碟緩存) ,讀取順序為memory > disk

❷ vivo手機瀏覽器緩存的視頻在哪裡

在手機瀏覽器--底部「☰」--我的視頻--已緩存視頻即可查看。

❸ 瀏覽器緩存原理簡述

緩存文件存儲方式有2種:內存和硬碟。為了提高文件讀取速度,瀏覽器優先讀內存中的緩存文件(如果存在的話)。

按照本地緩存階段和協商緩存階段分類:

緩存的策略由http消息頭Cache-Control確定,以下為各個值對應的效果:
Cache-Control:public :所有內容都將被緩存(客戶端和代理伺服器都可緩存)
Cache-Control:private :所有內容只有客戶端可以緩存
Cache-Control:no-cache :默認值。客戶端緩存內容,但是是否使用緩存則需要經過協商緩存來驗證決定
Cache-Control:no-store :所有內容都不會被緩存,即不使用強制緩存,也不使用協商緩存
Cache-Control:max-age=xxx (xxx is numeric) :緩存內容將在xxx秒後失效

HTTP1.0 的特性,標識該資源過期的時間點,它是一個絕對值,格林威治時間(Greenwich Mean Time, GMT),即在這個時間點之後,緩存的資源過期; 優先順序:Cache-Control 優先順序高於 Expires ,為了兼容,通常兩個頭部同時設置;瀏覽器默認行為:其實就算 Response Header 中沒有設置 Cache-Control 和 Expires,瀏覽器仍然會緩存某些資源,這是瀏覽器的默認行為,是為了提升性能進行的優化,每個瀏覽器的行為可能不一致,有些瀏覽器甚至沒有這樣的優化。

Last-Modified (Response Header)與 If-Modified-Since (Request Header)是一對報文頭,屬於 http 1.0。

If-Modified-Since 是一個請求首部欄位,並且只能用在 GET 或者 HEAD 請求中。Last-Modified 是一個響應首部欄位,包含伺服器認定的資源作出修改的日期及時間。當帶著 If-Modified-Since 頭訪問伺服器請求資源時,伺服器會檢查 Last-Modified,如果 Last-Modified 的時間早於或等於 If-Modified-Since 則會返回一個不帶主體的 304 響應,否則將重新返回資源。

ETag 與 If-None-Match 是一對報文頭,屬於 http 1.1。

ETag 是一個響應首部欄位,它是根據實體內容生成的一段 hash 字元串,標識資源的狀態,由服務端產生。If-None-Match 是一個條件式的請求首部。如果請求資源時在請求首部加上這個欄位,值為之前伺服器端返回的資源上的 ETag,則當且僅當伺服器上沒有任何資源的 ETag 屬性值與這個首部中列出的時候,伺服器才會返回帶有所請求資源實體的 200 響應,否則伺服器會返回不帶實體的 304 響應。

❹ 瀏覽器緩存怎麼清除

清除瀏覽器緩存具體操作步驟如下:

工具:蘋果電腦、瀏覽器軟體。

1、在蘋果電腦上打開瀏覽器,點擊右上角的小圓點。

❺ 電腦中瀏覽器緩存是什麼意思

瀏覽器緩存,是打開網頁首先需要載入到本地的圖片文字視頻等網頁文件,一般只有緩存到本地才可以流暢訪問,否則就會無法正常載入。或者就無法打開網頁了。

❻ 清理瀏覽器緩存在什麼地方

最簡便快速的方法:打開瀏覽器後,按住鍵盤上的 Ctrl+Shift+Delet 鍵。

使用組合快捷鍵後,在彈出的面板上,勾選所需刪除的緩存項,點擊「立即清理」按鈕即可完成緩存的清理。

瀏覽器是用來檢索、展示以及傳遞Web信息資源的應用程序。

Web信息資源由統一資源標識符( Uniform Resource Identifier,URI)所標記,它是一張網頁、一張圖片、一段視頻或者任何在Web上所呈現的內容。使用者可以藉助超級鏈接( Hyperlinks),通過瀏覽器瀏覽互相關聯的信息。

❼ 電腦瀏覽器緩存在哪裡清理

方法/步驟
首先介紹第一種方法,最簡便快速的:打開瀏覽器後,按住鍵盤上的 Ctrl+Shift+Delet 鍵。
怎麼快速清理瀏覽器緩存(多種方式)
使用組合快捷鍵後,在彈出的面板上,勾選所需刪除的緩存項,點擊「立即清理」按鈕即可完成緩存的清理。
怎麼快速清理瀏覽器緩存(多種方式)
第二種方法,點擊電腦左下角「開始」——「運行」——輸入「cmd」,點擊確認。 (也可以直接用快捷鍵「Win+R」打開)
怎麼快速清理瀏覽器緩存(多種方式)
在彈出的命令提示符窗口輸入命令:DEL *.SOL/S 然後點擊「Enter」鍵,運行完畢後重新打開瀏覽器即可。
怎麼快速清理瀏覽器緩存(多種方式)
第三個方法,介紹一種比較常規的方法,打開瀏覽器,點擊菜單鍵(一般都在瀏覽器右上角)——工具——Internet選項。
怎麼快速清理瀏覽器緩存(多種方式)
在彈出的小框框內,選擇第一個「常規」面板,點擊「刪除」 按鈕。
怎麼快速清理瀏覽器緩存(多種方式)
在新的彈出框內,勾選上所需刪除的選項,點擊「刪除」按鈕即可完成緩存的清理。
怎麼快速清理瀏覽器緩存(多種方式)
最後,介紹一個最霸道的方法。在剛才第三個方法中的 Internet選項——常規 面板中,點擊「設置」——「查看文件」按鈕。
怎麼快速清理瀏覽器緩存(多種方式)
出現的緩存文件夾中,選擇所有文件(快捷鍵:Ctrl+A),點擊 Ctrl+D 鍵,確認刪除所有緩存文件,即可將所有緩存的文件從電腦里刪除的乾乾凈凈。
怎麼快速清理瀏覽器緩存(多種方式)

❽ 瀏覽器緩存機制

有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

❾ 怎麼樣清理瀏覽器緩存垃圾

Etag的工作原理與Last-modified類似,不同點在於Etag的值是用戶可自定義的
緩存協商可應用在動態頁面且實時性不是特別強的頁面,如網站首頁
要清空 Chrome 的緩存,請按以下步驟操作:
打開chrome瀏覽器,使用Ctrl+Shift+Delete快捷鍵,就會打開清理瀏覽數據頁面,選擇清理緩存選項,
然後單擊「清除瀏覽數據」按鍵即可。
或者單擊瀏覽器上的扳手-->選項-->高級選項-->隱私設置一欄中的清楚瀏覽數據 之後重復上面的步驟。 徹底緩存的意思是在緩存失效之前不再需要跟伺服器交互
常用的是Expires,Expires的值是一個絕對時間,由伺服器產生
這兒存在一個問題,就是伺服器的時間可能給客戶端的時間不一致導致緩存時間的偏差
要解決這個問題就要使用cache-control,它保存的是一個相對瀏覽器的時間
如果同時存在cache-control和Expires怎麼辦呢?
瀏覽器總是優先使用cache-control,如果沒有cache-control才考慮Expires
瀏覽器緩存最大的價值是節省了帶寬
為什麼沒有提高吞吐率呢? 下面來分析一下
這里分兩種情況:靜態頁面和動態頁面
服務端載入靜態頁面需要進行磁碟IO,瀏覽器緩存則可節省這部分時間,不過伺服器一般會用squid等工具進行緩存,所以靜態資源在提高吞吐率方面效果不明顯