0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于瀏覽器緩存最詳細(xì)解析

jf_f8pIz0xS ? 來源:掘金 ? 作者:foolBird ? 2021-04-16 16:01 ? 次閱讀

簡述

瀏覽器緩存即 http 緩存,將請求過的數(shù)據(jù)(html、css、js)存在瀏覽器(本地磁盤)中,當(dāng)再次訪問這些資源時可以從本地直接加載,減少服務(wù)端請求

服務(wù)端通過設(shè)置 http 響應(yīng)頭來決定緩存策略(緩存方式)

緩存流程

第一次請求需要的資源,服務(wù)器返回資源的同時在 response hearder 響應(yīng)頭中添加了緩存策略,告訴瀏覽器緩存規(guī)則(比如以何種方式緩存,緩存信息。。.。。.),此時就進(jìn)行緩存了

第二次如果是請求相同資源,那么就會檢查緩存里面是否有相應(yīng)資源,有的話直接取用,具體方式請看后續(xù)

緩存位置

先談?wù)劸彺娑紩嬖谀?,然后引出緩存方式進(jìn)一步說明

Service Worker

可以讓我們自由控制緩存哪些文件、如何匹配/讀取緩存,并且緩存是持續(xù)性的

離線緩存調(diào)用的就是 Service Worker

Memory Cache

內(nèi)存中的緩存,關(guān)閉頁面就會失效

Disk Cache

硬盤中的緩存

資源存進(jìn)硬盤的情況

大文件(大概率)

此時內(nèi)存利用率較高

Push Cache

推送緩存:以上三種緩存都沒命中時,才啟用

它只在會話(Session)中存在,會話結(jié)束就會釋放,緩存時間很短

如果以上四種緩存都沒被命中,就只能發(fā)起請求了。所以為了性能考慮,選擇好緩存方式極為重要

緩存方式

緩存方式就兩種

強(qiáng)緩存(默認(rèn)優(yōu)先)

協(xié)商緩存(協(xié)商,也就是商量的意思)

先介紹一個響應(yīng)頭中重要的值 Cache-Control,用于控制網(wǎng)頁緩存,有如下主要取值

public:響應(yīng)可以被客戶端和代理服務(wù)器緩存

private(默認(rèn)取值):響應(yīng)只有客戶端可以緩存

no-cache:直接進(jìn)入?yún)f(xié)商緩存階段

no-store:不進(jìn)行任何緩存

max-age = xxx(xxx 代表數(shù)字):緩存內(nèi)容在 xxx 時間后失效

must-revalidate:告訴瀏覽器

瀏覽器查看響應(yīng)頭的方法(新版 edge 為例):右鍵選擇 “檢查”,進(jìn)入開發(fā)者模式,選擇 “網(wǎng)絡(luò)” ,選中具體選項(xiàng)(如果沒有可以 f5 刷新頁面),點(diǎn)擊 “標(biāo)頭”

強(qiáng)緩存

概念:檢查強(qiáng)緩存,不發(fā)送 http 請求直接從緩存里讀取資源。一般強(qiáng)緩存都會設(shè)置有效時間,過期就失效

觸發(fā)條件,Cache-Control 的值 max-age = xxx

響應(yīng)頭 Expires 存儲緩存過期時間(如果修改本地時間會造成緩存失效)

協(xié)商緩存

概念:需要攜帶緩存標(biāo)識(tag)發(fā)送 http 請求,由服務(wù)器判斷是否使用緩存。服務(wù)端會進(jìn)行判斷,若資源已發(fā)生變化,則返回新資源,否則告訴瀏覽器啟用緩存即可

觸發(fā)條件(兩個)

強(qiáng)緩存過期

Cache-Control 的值包含 no-cache

緩存標(biāo)識由響應(yīng)頭 Last-Modified、ETag 決定(簡述一下)AX

Last-Modified 用于記錄資源最后修改時間,瀏覽器再次請求時用來對比時間,以此判斷資源是否變化

ETag存儲一個字符串(類似標(biāo)識符),只要資源修改了標(biāo)識符就會變動,以此判斷資源是否變化

用戶操作對緩存的影響

地址欄輸入網(wǎng)址:瀏覽器會查找

點(diǎn)擊刷新按鈕或按 f5 刷新:會使用緩存

ctrl+f5 刷新:跳過緩存,直接請求新資源
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 緩存
    +關(guān)注

    關(guān)注

    1

    文章

    240

    瀏覽量

    26678
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1025

    瀏覽量

    35358
收藏 人收藏

    評論

    相關(guān)推薦

    訊飛星火瀏覽器插件全新升級

    時刻陪伴,星火插件讓你的瀏覽器變成真正的生產(chǎn)力工具。
    的頭像 發(fā)表于 12-25 09:48 ?164次閱讀

    Web緩存的類型及功能分析

    速度,降低了延遲,并提高了網(wǎng)站的可用性。 Web緩存的類型 Web緩存主要分為以下幾種類型: 瀏覽器緩存(Browser Cache) 功能 :瀏覽
    的頭像 發(fā)表于 12-18 09:35 ?169次閱讀

    AWTK 最新動態(tài):支持瀏覽器控件

    導(dǎo)讀AWTK瀏覽器控件,基于webview項(xiàng)目實(shí)現(xiàn),將瀏覽器嵌入到AWTK應(yīng)用程序中,讓開發(fā)者可以方便的集成在線幫助和調(diào)用地圖等功能。awtk-widget-web-view是基于webview實(shí)現(xiàn)的AWTK瀏覽器控件,使得AW
    的頭像 發(fā)表于 11-20 01:05 ?201次閱讀
    AWTK 最新動態(tài):支持<b class='flag-5'>瀏覽器</b>控件

    寫一個Chrome瀏覽器插件

    一、什么是瀏覽器插件 瀏覽器插件是依附于瀏覽器,用來拓展網(wǎng)頁能力的程序。插件具有監(jiān)聽瀏覽器事件、獲取和修改網(wǎng)頁元素、攔截網(wǎng)絡(luò)請求、添加快捷菜單等功能。使用
    的頭像 發(fā)表于 11-18 17:12 ?344次閱讀
    寫一個Chrome<b class='flag-5'>瀏覽器</b>插件

    跨域問題是由瀏覽器的同源策略造成的

    瀏覽器
    jf_62215197
    發(fā)布于 :2024年08月27日 07:51:42

    不只是前端,后端、產(chǎn)品和測試也需要了解的瀏覽器知識(二)

    繼上篇《 不只是前端,后端、產(chǎn)品和測試也需要了解的瀏覽器知識(一)》介紹了瀏覽器的基本情況、發(fā)展歷史以及市場占有率。 本篇文章將介紹瀏覽器基本原理。 在掌握基本原理后,通過技術(shù)深入,在研發(fā)
    的頭像 發(fā)表于 08-12 14:32 ?348次閱讀
    不只是前端,后端、產(chǎn)品和測試也需要了解的<b class='flag-5'>瀏覽器</b>知識(二)

    不只是前端,后端、產(chǎn)品和測試也需要了解的瀏覽器知識

    一、我們?yōu)槭裁匆私?b class='flag-5'>瀏覽器? 1. 對于前端開發(fā)者 1.瀏覽器是用戶體驗(yàn)的第一線。我們需要了解瀏覽器的工作原理,才能有效地設(shè)計(jì)和實(shí)現(xiàn)用戶界面,確保良好的用戶體驗(yàn)。 2.好的產(chǎn)品需要考慮瀏覽器
    的頭像 發(fā)表于 07-01 18:03 ?472次閱讀
    不只是前端,后端、產(chǎn)品和測試也需要了解的<b class='flag-5'>瀏覽器</b>知識

    Opera瀏覽器引領(lǐng)潮流,全球首接端側(cè)AI大模型

    昆侖萬維旗下海外平臺Opera宣布,其旗艦瀏覽器Opera One和游戲瀏覽器Opera GX將正式接入端側(cè)AI大模型,成為全球首個實(shí)現(xiàn)這一突破的主流瀏覽器。
    的頭像 發(fā)表于 06-03 09:18 ?737次閱讀

    Microsoft Edge瀏覽器將去除爭議性關(guān)注創(chuàng)建者功能

    據(jù)悉,2019 年 The Verge 曾披露 Edge 瀏覽器的關(guān)注創(chuàng)建者功能存在嚴(yán)重漏洞,該功能使得用戶在瀏覽網(wǎng)站時,瀏覽器將其訪問記錄上傳至必應(yīng)搜索引擎。
    的頭像 發(fā)表于 05-13 15:24 ?461次閱讀

    Edge瀏覽器關(guān)閉Microsoft Rewards擴(kuò)展原因揭曉

    據(jù)報道,近期德國等地的Microsoft Edge瀏覽器用戶發(fā)現(xiàn),安裝或啟動Microsoft Rewards擴(kuò)展后,會出現(xiàn)“右上角擴(kuò)展被Edge瀏覽器禁用以保障您的瀏覽器安全”的提醒窗口。
    的頭像 發(fā)表于 04-10 09:55 ?819次閱讀

    Mozilla Firefox瀏覽器推出Text Fragments功能,提升用戶體驗(yàn)

    早在2020年,谷歌即在Chrome瀏覽器中推出了“Scroll to Text Fragments”功能,而Edge、Opera、Brave、Vivaldi以及蘋果Safari等基于Chromium的瀏覽器也已支持這一便捷特性。
    的頭像 發(fā)表于 04-08 10:21 ?626次閱讀

    鴻蒙實(shí)戰(zhàn)開發(fā):【瀏覽器制作】

    使用[@ohos.systemparameter]接口和[Web組件]展示了一個瀏覽器的基本功能,展示網(wǎng)頁,根據(jù)頁面歷史棧前進(jìn)回退等。
    的頭像 發(fā)表于 03-19 17:47 ?591次閱讀
    鴻蒙實(shí)戰(zhàn)開發(fā):【<b class='flag-5'>瀏覽器</b>制作】

    安卓版Chrome瀏覽器現(xiàn)已支持第三方密碼管理調(diào)用

    據(jù)報道,數(shù)據(jù)解析專家Leppeva64近日在安卓版谷歌Chrome瀏覽器的源代碼中透露,該瀏覽器已在安卓平臺上實(shí)現(xiàn)了對第三方密碼管理的調(diào)用支持,并覆蓋Stable、Beta及Cana
    的頭像 發(fā)表于 03-19 11:04 ?709次閱讀

    Windows 11預(yù)覽版安裝受阻,微軟提示更新設(shè)備或瀏覽器

    該提示翻譯如下:由于安全性考慮,您的設(shè)備或瀏覽器未能順利連接至認(rèn)證服務(wù)。若您確非惡意行為者,請嘗試更新相關(guān)設(shè)備或瀏覽器,以獲取完整使用體驗(yàn)。
    的頭像 發(fā)表于 03-05 14:29 ?1044次閱讀

    昆侖萬維旗下Opera將推出全球首款非WebKit內(nèi)核的iOS瀏覽器

    近日,昆侖萬維旗下的國際知名瀏覽器品牌Opera宣布,將針對歐洲的iPhone和iPad用戶推出一款全新的AI瀏覽器——Opera One。這款瀏覽器最大的亮點(diǎn)在于,它基于Opera自研的引擎,而非通常的WebKit內(nèi)核,這在全
    的頭像 發(fā)表于 02-06 16:40 ?5739次閱讀