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

web瀏覽器緩存

發布時間: 2022-09-26 07:24:41

1. 廣西北大青鳥:什麼是瀏覽器緩存

什麼是瀏覽器緩存瀏覽器緩存(BrowerCaching)是瀏覽器在本地磁碟對用戶最近請求過的文檔進行存儲,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文檔。
瀏覽器緩存的優點有:減少了冗餘的數據傳輸,節省了網費減少了伺服器的負擔,大大提升了網站的性能加快了客戶端載入網頁的速度在前端開發面試中,瀏覽器緩存是web性能優化面試題中很重要的一個知識點,從而說明瀏覽器緩存是提升web性能的一大利器,但是瀏覽器緩存如果使用不當,也會產生很多問題,正所謂是,想說愛你,並不是很容易的事。
所以,結合最近遇到的案例,本文對瀏覽器緩存相關的知識進行總結歸納,希望對讀者有所幫助。
瀏覽器緩存的分類瀏覽器緩存主要有兩類:緩存協商和徹底緩存,也有稱之為協商緩存和強緩存。
瀏覽器在第一次請求發生後,再次請求時:瀏覽器會先獲取該資源緩存的header信息,根據其中的expires和cahe-control判斷是否命中強緩存,若命中則直接從緩存中獲取資源,包括緩存的header信息,本次請求不會與伺服器進行通信;如果沒有命中強緩存,瀏覽器會發送請求到伺服器,該請求會攜帶第一次請求返回的有關緩存的header欄位信息(Last-Modified/IF-Modified-Since、Etag/IF-None-Match),由伺服器根據請求中的相關header信息來對比結果是否命中協商緩存,若命中,則伺服器返回新的響應header信息更新緩存中的對應header信息,但是並不返回資源內容,它會告知瀏覽器可以直接從緩存獲取;否則返回最新的資源內容強緩存強緩存是利用http的返回頭中的Expires或者Cache-Control兩個欄位來控制的,用來表示資源的緩存時間。
Expires該欄位是http1.0時的規范,它的值為一個絕對時間的GMT格式的時間字元串,比如Expires:Mon,18Oct206623:59:59GMT。
這個時間代表著這個資源的失效時間,在此時間之前,廣西電腦培訓建議即命中緩存。
這種方式有一個明顯的缺點,由於失效時間是一個絕對時間,所以當伺服器與客戶端時間偏差較大時,就會導致緩存混亂。

2. 瀏覽器緩存(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

3. UCWEB瀏覽器頁面緩存要定期清除嗎

UCWEB瀏覽器頁面緩存需要定期清除的,可以提高UCWEB瀏覽器性能,提高效率。

清理方法:

1、打開uc瀏覽器,進入uc瀏覽器主界面。

2、點擊uc瀏覽器下面導航中間的三個橫杠按鈕,再點擊「設置」標簽。如下圖所示。

4. 貴陽北大青鳥:什麼是瀏覽器緩存

什麼是瀏覽器緩存瀏覽器緩存(BrowerCaching)是瀏覽器在本地磁碟對用戶最近請求過的文檔進行存儲,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文檔。
瀏覽器緩存的優點有:減少了冗餘的數據傳輸,節省了網費減少了伺服器的負擔,大大提升了網站的性能加快了客戶端載入網頁的速度在前端開發面試中,瀏覽器緩存是web性能優化面試題中很重要的一個知識點,從而說明瀏覽器緩存是提升web性能的一大利器,但是瀏覽器緩存如果使用不當,也會產生很多問題,正所謂是,想說愛你,並不是很容易的事。
所以,結合最近遇到的案例,本文對瀏覽器緩存相關的知識進行總結歸納,希望對讀者有所幫助。
瀏覽器緩存的分類瀏覽器緩存主要有兩類:緩存協商和徹底緩存,也有稱之為協商緩存和強緩存。
瀏覽器在第一次請求發生後,再次請求時:瀏覽器會先獲取該資源緩存的header信息,根據其中的expires和cahe-control判斷是否命中強緩存,若命中則直接從緩存中獲取資源,包括緩存的header信息,本次請求不會與伺服器進行通信;如果沒有命中強緩存,瀏覽器會發送請求到伺服器,該請求會攜帶第一次請求返回的有關緩存的header欄位信息(Last-Modified/IF-Modified-Since、Etag/IF-None-Match),由伺服器根據請求中的相關header信息來對比結果是否命中協商緩存,若命中,則伺服器返回新的響應header信息更新緩存中的對應header信息,但是並不返回資源內容,它會告知瀏覽器可以直接從緩存獲取;否則返回最新的資源內容強緩存強緩存是利用http的返回頭中的Expires或者Cache-Control兩個欄位來控制的,用來表示資源的緩存時間。
Expires該欄位是http1.0時的規范,它的值為一個絕對時間的GMT格式的時間字元串,比如Expires:Mon,18Oct206623:59:59GMT。
這個時間代表著這個資源的失效時間,在此時間之前,貴陽電腦培訓建議即命中緩存。
這種方式有一個明顯的缺點,由於失效時間是一個絕對時間,所以當伺服器與客戶端時間偏差較大時,就會導致緩存混亂。

5. 瀏覽器緩存的方式和類型(筆記)

瀏覽器緩存只是計算機緩存的一種

1.內存緩存
將數據存到內存
2.代理伺服器緩存
就是個自己找的中介。你拿東西先找中介,中介找房東,房東給中介,中介又給你。比如你需要房子鑰匙,房東把鑰匙放在中介那,你直接從中介那裡拿鑰匙。
3.CDN緩存
將數據存到CDN伺服器。CDN也是個中介,不過這個中介是根據中介的忙碌程度(CDN伺服器忙碌程度)、跟你的距離(CDN伺服器和你的距離)自動給你分配的。
4.瀏覽器緩存( 我是個前端,只關注瀏覽器緩存。
根據HTTP協議決定要不要緩存,以什麼方式緩存,緩存到哪(內存還是硬碟等)。

瀏覽器緩存是將瀏覽器請求過的數據(資源文件)保存到電腦上。需要再次使用的時候,直接從電腦上獲取保存的數據(資源文件),這就是瀏覽器緩存

1.減少網路請求,節省流量
2.減輕伺服器壓力
3.資源載入速度快了,前端性能就更好了

1.Server Worker
還沒搞懂,搞懂了再來寫。
2.Memory Cache
內存中的緩存,關閉頁面進程就釋放內存
3.Disk Memory
硬碟中的緩存,不主動清理就一直在

4、Push Cache
推送緩存,是HTTP/2的內容,並沒有嚴格執行HTTP頭部的緩存指令。在Server Worker、Memory Cache、Disk Cache都沒有命中的時候,它會被使用。在Session中存在,Session結束就會被釋放,緩存時間短暫。

1.先去內存查找,找到直接載入
2.內存找不到,硬碟中找,找到直接載入
3.硬碟找不到進行網路請求
4.把請求獲取的資源再緩存到硬碟和內存

1.強緩存
控制強制緩存的欄位分別是Expires和Cache-Control,Cache-Control優先順序比Expires高
-Expires設置一個絕對時間的GMT格式的時間字元串,這個是資源失效時間( 客戶端的時間小於Expires的值,缺陷就是客戶端的時間被改變就有問題 ),在這個時間之前都直接讀取緩存。
-Cache-Control替代Expires,它利用的是相對時間,利用header信息欄位的max-age值判斷。
2.協商緩存
-Last-Modified/If-Modified-Since
Last-Modified:瀏覽器向伺服器發送資源最後的修改時間
If-Modified-Since:當資源過期時,發現響應頭具有Last-Modified聲明,則再次向伺服器請求時帶上頭if-modified-since,表示請求時間。伺服器收到請求後,發現有if-modified-since則與被請求資源的最後修改時間進行對比(Last-Modified),若最後修改時間較新,說明資源又被改過,則返回最新資源,返回200;若最後修改時間較小,說明資源無新修改,返回304 ,使用緩存文件。
缺點:單位是秒,一秒內多次改變會認為沒過期
-ETag/If-None-Match
ETag:由伺服器生成返回給前端,幫助伺服器控制web端的緩存驗證,伺服器會生成並且返回當前資源文件的一個唯一標識
If-None-Match:當資源過期時,發現響應頭具有Etag聲明,則再次向伺服器請求時帶上頭if-none-match(唯一標識Etag值)。伺服器收到該請求後,發現有If-None-Match則根據If-None-Match的欄位值與該資源在伺服器的Etag值做對比,一致則返回304,代表資源無更新,繼續使用緩存文件;不一致則重新返回資源文件,狀態碼為200。

1.強緩存不發請求,協商緩存會發請求給伺服器確認有沒有過期
2.強緩存文件更新瀏覽器不知道,協商緩存更新瀏覽器能實時知道

1.點擊瀏覽器的刷新按鈕時,全部走緩存
2.F5或者滑鼠右鍵刷新強制緩存失效,不影響協商緩存
3.CTRL+F5影響強制緩存和協商緩存都失效

6. 如何清楚網頁瀏覽緩存

1、打開Internet選項。
2、點擊「常規」選項卡下的瀏覽歷史下的「刪除」。

3、選中所有的選項,點擊「刪除」。

4、注意,這樣刪除之後,很多網站的密碼需要重新登陸,如果你不想重新輸入密碼,可以不清除「密碼」選項。

7. web系統每次發布新版本,必須清理瀏覽器緩存怎麼解決

在response中設置瀏覽器不緩存數據即可。

Java為例:

//設置頁面不緩存
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);



response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);

php設置 head頭就可以。其他語言都一樣,改響應

8. 陝西北大青鳥:什麼是瀏覽器緩存

什麼是瀏覽器緩存瀏覽器緩存(BrowerCaching)是瀏覽器在本地磁碟對用戶最近請求過的文檔進行存儲,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文檔。
瀏覽器緩存的優點有:減少了冗餘的數據傳輸,節省了網費減少了伺服器的負擔,大大提升了網站的性能加快了客戶端載入網頁的速度在前端開發面試中,瀏覽器緩存是web性能優化面試題中很重要的一個知識點,從而說明瀏覽器緩存是提升web性能的一大利器,但是瀏覽器緩存如果使用不當,也會產生很多問題,正所謂是,想說愛你,並不是很容易的事。
所以,結合最近遇到的案例,本文對瀏覽器緩存相關的知識進行總結歸納,希望對讀者有所幫助。
瀏覽器緩存的分類瀏覽器緩存主要有兩類:緩存協商和徹底緩存,也有稱之為協商緩存和強緩存。
瀏覽器在第一次請求發生後,再次請求時:瀏覽器會先獲取該資源緩存的header信息,根據其中的expires和cahe-control判斷是否命中強緩存,若命中則直接從緩存中獲取資源,包括緩存的header信息,本次請求不會與伺服器進行通信;如果沒有命中強緩存,瀏覽器會發送請求到伺服器,該請求會攜帶第一次請求返回的有關緩存的header欄位信息(Last-Modified/IF-Modified-Since、Etag/IF-None-Match),由伺服器根據請求中的相關header信息來對比結果是否命中協商緩存,若命中,則伺服器返回新的響應header信息更新緩存中的對應header信息,但是並不返回資源內容,它會告知瀏覽器可以直接從緩存獲取;否則返回最新的資源內容強緩存強緩存是利用http的返回頭中的Expires或者Cache-Control兩個欄位來控制的,用來表示資源的緩存時間。
Expires該欄位是http1.0時的規范,它的值為一個絕對時間的GMT格式的時間字元串,比如Expires:Mon,18Oct206623:59:59GMT。
這個時間代表著這個資源的失效時間,在此時間之前,陝西電腦培訓建議即命中緩存。
這種方式有一個明顯的缺點,由於失效時間是一個絕對時間,所以當伺服器與客戶端時間偏差較大時,就會導致緩存混亂。

9. web 瀏覽器緩存 需要前端設置么

緩存的概念
緩存這個東西真的是無處不在, 有瀏覽器端的緩存, 有伺服器端的緩存,有代理伺服器的緩存, 有ASP.NET頁面緩存,對象緩存。 資料庫也有緩存, 等等。
http中具有緩存功能的是瀏覽器緩存,以及緩存代理伺服器。
http緩存的是指:當Web請求抵達緩存時, 如果本地有「已緩存的」副本,就可以從本地存儲設備而不是從原始伺服器中提取這個文檔。
緩存的好處
緩存的好處是顯而易見的, 好處有,
1. 減少了冗餘的數據傳輸,節省了網費。
2. 減少了伺服器的負擔, 大大提高了網站的性能
3. 加快了客戶端載入網頁的速度
Fiddler可以方便地查看緩存的header
Fiddler中把header都分門別類的放在一起,這樣方便查看。
HTTP緩存是如何實現
如何判斷緩存新鮮度
Web伺服器通過2種方式來判斷瀏覽器緩存是否是最新的。
第一種, 瀏覽器把緩存文件的最後修改時間通過 header 」If-Modified-Since「來告訴Web伺服器。
第二種, 瀏覽器把緩存文件的ETag, 通過header "If-None-Match", 來告訴Web伺服器。
通過最後修改時間, 來判斷緩存新鮮度
1. 瀏覽器客戶端想請求一個文檔, 首先檢查本地緩存,發現存在這個文檔的緩存, 獲取緩存中文檔的最後修改時間,通過: If-Modified-Since, 發送Request給Web伺服器。
2. Web伺服器收到Request,將伺服器的文檔修改時間(Last-Modified): 跟request header 中的,If-Modified-Since相比較, 如果時間是一樣的, 說明緩存還是最新的, Web伺服器將發送304 Not Modified給瀏覽器客戶端, 告訴客戶端直接使用緩存里的版本。