
HTTP 缓存理解
发布日期:2021-05-08 00:10:29
浏览次数:22
分类:精选文章
本文共 483 字,大约阅读时间需要 1 分钟。
HTTP 缓存主要是浏览器端缓存 GET
方式的资源文件, 分为强缓存和协商缓存。强缓存指的是本地缓存未过期(根据 Cache-Control
的 max-age
设定),此时浏览器直接从本地缓存读取资源文件。本地缓存又分为内存缓存(memory cache
)和硬盘缓存(disk cache
),内存缓存速度更快,但生命周期与浏览器标签页相关;硬盘缓存虽然速度较慢,但在标签页关闭后仍然可用。
当本地缓存过期时,浏览器会发送携带 If-Non-Match
请求头的请求,请求头的值取自响应头中的 ETag
。服务器接收到该请求后,会根据 ETag
比对,如果未修改,会返回 Status Code 304 Not Modified
,无需返回响应体;如果已修改,则返回 200
状态码和完整的响应体。浏览器接收到响应后会更新本地文件的过期时间。
内存缓存和硬盘缓存的主要区别在于存储介质和使用场景。内存缓存以内存为介质,速度更快,且生命周期直接跟随标签页的创建和关闭。而硬盘缓存则以硬盘为存储介质,虽然速度较慢,但在标签页关闭后仍然可以使用硬盘缓存,但无法使用内存缓存。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月19日 09时59分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
20万高薪专业-网络安全(非常详细)零基础入门到精通,收藏这一篇就够了
2023-01-25
23张图告诉你组建一个网络需要用到哪些硬件设备?路由器、交换机、防火墙是不是就够了?
2023-01-25
24 WEB漏洞-文件上传之WAF绕过及安全修复_阿里云盾waf绕过怎么修复
2023-01-25
#12 btrfs文件系统
2023-01-25
#3194. 去月球
2023-01-25
24.线程
2023-01-25
#Leetcode# 28. Implement strStr()
2023-01-25
2022年课时四Servlet 中常用<Servlet>常用对象
2023-01-25
$route 和 $router详解、区别、示例代码
2023-01-25
$scope angular在controller之外调用
2023-01-25
&和&&的区别
2023-01-25
064:vue+openlayers根据坐标来显示点、线段、圆形、多边形
2023-01-25
(ios实战)单个ViewControl适配不同ios版本xib文件实现
2023-01-25
(Leetcode-字符串-2) 字符串运算
2023-01-25
047:cesium加载geojson文件,显示图形
2023-01-25
(type interface {}) to type string
2023-01-25