游覽器緩存講解

瀏覽器緩存是指瀏覽器在本地存儲已經請求過的資源的一種機制,以便在將來的請求中能夠更快地獲取這些資源,減少對服務器的請求,提高頁面加載速度。瀏覽器緩存主要涉及到兩個方面:緩存控制和緩存位置。

緩存控制

Expires 頭:

作用: 通過 Expires 頭指定資源的過期時間,即資源在客戶端緩存的有效期。

示例: Expires: Tue, 10 Nov 2023 12:00:00 GMT

Cache-Control 頭:

作用: 提供更靈活的緩存控制,包括 public(可以被任何中間緩存和終端緩存)、private(只能被終端緩存)、no-cache(需要先驗證是否過期)、max-age(指定緩存的最大有效時間)等。

示例: Cache-Control: max-age=3600, public

Last-Modified 頭:

作用: 指定資源最后一次修改的時間。

示例: Last-Modified: Tue, 01 Nov 2022 08:00:00 GMT

If-Modified-Since 頭:

作用: 客戶端發送該頭,用于條件性地請求服務器,僅在資源在指定時間后被修改時才會返回資源內容。

示例: If-Modified-Since: Tue, 01 Nov 2022 08:00:00 GMT

ETag 頭:

作用: 提供一個唯一的標識符,當資源被修改時,ETag 會發生變化。

示例: ETag: “abc123”

If-None-Match 頭:

作用: 客戶端發送該頭,用于條件性地請求服務器,僅在資源的 ETag 值與指定的值不匹配時才返回資源內容。

示例: If-None-Match: “abc123”

緩存位置

Memory Cache(內存緩存):

緩存在內存中,讀取速度快,但容量較小,僅在瀏覽器打開時有效。
Disk Cache(磁盤緩存):

緩存在磁盤中,容量相對較大,可以在瀏覽器關閉后依然有效。
Service Worker Cache(Service Worker 緩存):

使用 Service Worker 技術,可以在離線狀態下提供緩存服務,用于構建離線應用。
Push Cache:

用于存儲通過 HTTP/2 服務器推送而來的資源。

緩存的流程

首次請求:

瀏覽器向服務器請求資源。
服務器響應:

服務器返回資源,并在響應頭中設置相應的緩存控制信息。
瀏覽器緩存:

瀏覽器將資源保存在緩存中,同時記錄緩存控制信息。
再次請求:

如果資源沒有過期,瀏覽器直接從緩存中讀取資源,不再請求服務器。
條件性請求:

如果資源過期或被修改,瀏覽器通過條件性請求(如 If-Modified-Since 或 If-None-Match)向服務器驗證是否需要獲取新的資源。
更新緩存:

如果服務器返回新的資源,瀏覽器將新的資源存儲在緩存中,更新緩存控制信息。
通過合理設置緩存控制頭,開發者可以更好地控制客戶端緩存的行為,從而提升用戶體驗和加速頁面加載。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168180.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168180.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168180.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Javascript每天一道算法題(十六)——獲取除自身以外數組的乘積_中等

文章目錄 1、問題2、示例3、解決方法(1)方法1 總結 1、問題 給你一個整數數組 nums,返回 數組 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums之中任意元素的全部前綴元素和后綴…

RAM模型從數據準備到pretrain、finetune與推理全過程詳細說明

提示:RAM模型:環境安裝、數據準備與說明、模型推理、模型finetune、模型pretrain等 文章目錄 前言一、環境安裝二、數據準備與解讀1.數據下載2.數據標簽內容解讀3.標簽map內容解讀 三、finetune訓練1.微調訓練命令2.load載入參數問題3.權重載入4.數據加載…

使用new Vue()的時候發生了什么?

前言 Vue.js是一個流行的JavaScript前端框架,用于構建單頁面應用(SPA)和用戶界面。當我們使用new Vue()來創建一個Vue實例時,Vue會執行一系列的初始化過程,將數據變成響應式,編譯模板,掛載實例…

RabbitMQ之發送者(生產者)可靠性

文章目錄 前言一、生產者重試機制二、生產者確認機制實現生產者確認(1)定義ReturnCallback(2)定義ConfirmCallback 總結 前言 生產者重試機制、生產者確認機制。 一、生產者重試機制 問題:生產者發送消息時&#xff0…

分布式事務總結

文章目錄 一、分布式事務基礎什么是事務?本地事物分布式事務分布式事務的場景 二、分布式事務解決方案全局事務可靠消息服務TCC 事務 三、Seata 分布式事務解決方案3.1 Seata-At模式3.2 秒殺項目集成 Seata啟動 Seata-Server項目集成seata配置AT模式代碼實現 3.3 Se…

openstack(2)

目錄 塊存儲服務 安裝并配置控制節點 安裝并配置一個存儲節點 驗證操作 封裝鏡像 上傳鏡像 塊存儲服務 安裝并配置控制節點 創建數據庫 [rootcontroller ~]# mysql -u root -pshg12345 MariaDB [(none)]> CREATE DATABASE cinder; MariaDB [(none)]> GRANT ALL PR…

1、Docker概述與安裝

相關資源網站: ● docker官網:http://www.docker.com ● Docker Hub倉庫官網: https://hub.docker.com/ 注意,如果只是想看Docker的安裝,可以直接往下拉跳轉到Docker架構與安裝章節下的Docker具體安裝步驟,一步步帶你安…

82基于matlab GUI的圖像處理

基于matlab GUI的圖像處理,功能包括圖像一般處理(灰度圖像、二值圖);圖像幾何變換(旋轉可輸入旋轉角度、平移、鏡像)、圖像邊緣檢測(拉普拉斯算子、sobel算子、wallis算子、roberts算子&#xf…

【Rust日報】2023-11-22 Floneum -- 基于 Rust 的一款用于 AI 工作流程的圖形編輯器

Floneum -- 基于 Rust 的一款用于 AI 工作流程的圖形編輯器 Floneum 是一款用于 AI 工作流程的圖形編輯器,專注于社區制作的插件、本地 AI 和安全性。 Floneum 有哪些特性: 可視化界面:您無需任何編程知識即可使用Floneum。可視化圖形編輯器可…

oled的使用 動態的變量 51

源碼均在IIC手寫程序中 外部中斷實現變量加一 #include "reg52.h" #include "main.h" #include <intrins.h> #include "OLED.h" #include "bmp.h" #include "Delay.h" sbit LED1 P1^0; sbit LED2 P1^1; sbit LED3…

【LeetCode每日一題】525. 連續數組

題目&#xff1a; 給定一個二進制數組 nums , 找到含有相同數量的 0 和 1 的最長連續子數組&#xff0c;并返回該子數組的長度。 媽的 連題目都沒有讀懂&#xff01;本來看成是找到兩個連續子數組&#xff0c;兩個連續子數組的 0 1 個數分別相同&#xff0c;我說怎么看著如此…

Python報錯:AttributeError(類屬性、實例屬性)

Python報錯&#xff1a;AttributeError&#xff08;類屬性、實例屬性&#xff09; Python報錯&#xff1a;AttributeError 這個錯誤就是說python找不到對應的對象的屬性&#xff0c;百度后才發現竟然是初始化類的時候函數名寫錯了 __init__應該有2條下劃線&#xff0c;如果只有…

構建未來:云計算 生成式 AI 誕生科技新局面

目錄 引言生成式 AI&#xff1a;開發者新伙伴云計算與生成式 AI 的無縫融合亞馬遜云與生成式 AI 結合的展望/總結我用亞馬遜云科技生成式 AI 產品打造了什么&#xff0c;解決了什么問題未來科技發展趨勢&#xff1a;開發者的機遇與挑戰結合實踐看未來結語開源項目 引言 2023年…

SpectralGPT: Spectral Foundation Model 論文翻譯1

遙感領域的通用大模型 2023.11.13在CVPR發表 原文地址&#xff1a;[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org) 摘要 ? 基礎模型最近引起了人們的極大關注&#xff0c;因為它有可能以一種自我監督的方式徹底改變視覺表征學習領域。雖然大多數基礎模型…

VSCode 連接遠程服務器問題及解決辦法

端口號不一樣&#xff0c;需要在配置文件中添加Port Host 27.223.26.46HostName 27.223.*.*User userForwardAgent yesPort 14111輸入密碼后可以連接 在vscode界面&#xff0c;終端&#xff0c;生成公鑰&私鑰 ssh-keygen可以看到有id_rsa和id_rsa.pub兩個文件生成&#…

curl 命令的一些基本用法,

curl 是一個用于在命令行中進行網絡請求的工具。以下是一些 curl 命令的常見用法&#xff1a; 從 URL 下載文件并保存為本地文件&#xff1a; curl -O URL例如&#xff1a; curl -O https://example.com/file.zip這將會將 file.zip 下載到當前目錄。 將文件下載到指定位置&…

Nginx如何配置負載均衡

nginx的負載均衡有4種模式&#xff1a; 1)、輪詢&#xff08;默認&#xff09; 每個請求按時間順序逐一分配到不同的后端服務器&#xff0c;如果后端服務器down掉&#xff0c;能自動剔除。 2)、weight 指定輪詢幾率&#xff0c;weight和訪問比率成正比&#xff0c;用于后端服務…

C#,《小白學程序》第五課:隊列(Queue)其一,排隊的技術與算法

日常生活中常見的排隊&#xff0c;軟件怎么體現呢&#xff1f; 排隊的基本原則是&#xff1a;先到先得&#xff0c;先到先吃&#xff0c;先進先出 1 文本格式 /// <summary> /// 《小白學程序》第五課&#xff1a;隊列&#xff08;Queue&#xff09; /// 日常生活中常見…

antDesignPro a-table樣式二次封裝

antDesignPro是跟element-ui類似的一個樣式框架&#xff0c;其本身就是一個完整的后臺系統&#xff0c;風格樣式都很統一。我使用的是antd pro vue&#xff0c;版本是1.7.8。公司要求使用這個框架&#xff0c;但是UI又有自己的一套設計。這就導致我需要對部分組件進行一定的個性…

nodejs微信小程序+python+PHP-青云商場管理系統的設計與實現-安卓-計算機畢業設計

目 錄 摘 要 I ABSTRACT II 目 錄 II 第1章 緒論 1 1.1背景及意義 1 1.2 國內外研究概況 1 1.3 研究的內容 1 第2章 相關技術 3 2.1 nodejs簡介 4 2.2 express框架介紹 6 2.4 MySQL數據庫 4 第3章 系統分析 5 3.1 需求分析 5 3.2 系統可行性分析 5 3.2.1技術可行性&#xff1a;…