浏览器缓存机制简单概括和分析

 我来答
科技新一17
2022-07-31 · TA获得超过1891个赞
知道小有建树答主
回答量:1954
采纳率:0%
帮助的人:122万
展开全部
对于访问的页面和请求,为了缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷,浏览器和服务器都有可能会对请求资源进行缓存,接下来的文章就简单介绍和分析浏览器的缓存机制。

深入理解浏览器的缓存机制:  https://www.jianshu.com/p/54cc04190252

这篇文章已经有详细的讲解,这里就概括一下:

以首页的请求为例:

1、强制缓存策略(Expires和Cache-Control) :当浏览器发起http请求的时候,如果配置了缓存策略且缓存在有效期内,会直接使用浏览器缓存。 不使用强制缓存 ( Cache-Control=no-chache, 或者 max-age=0  )

    (1)、图中请求服务器:是 max-age=0 的情况,浏览器直接请求服务器资源,而不是用本地缓存

    (2)、图中磁盘缓存和内存缓存:就是浏览器使用了本地缓存而不再请求服务器资源

2、协商缓存策略(Last-Modified和If-Modified-Since, ETag和If-None-Match): 当浏览器发起http请求的时候,如果 强制缓存策略 失效,或者者禁用了强制缓存,这时候会根据 If-Modified-Since 中的值与服务器中这个资源的最后修改时间对比,如果没有变化,返回304和空的响应体,直接从缓存读取,如果If-Modified-Since的时间小于服务器中这个资源的最后修改时间,说明文件有更新,于是返回新的资源文件和200。

不使用协商缓存 ( Cache-Control=no-store ),这个参数同时也会 禁用强制缓存。

    (1)、服务器资源返回无更新,浏览器使用上次请求的资源

(2)、服务器资源有更新,返回200并返回最新的资源

3、不使用缓存策略(Cache-Control=no-store): 所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存。当response head 设置了no-store,浏览器不会对返回的资源做缓存,每次请求都是直接请求服务器。这可以保证浏览器每次都能拿最新的资源,即使资源对比上次请求没有任何更新,但同时也降低了页面的响应速度,和增加了网络的IO与服务器的压力。

可以明显的看到请求时间,请求服务器资源时间 >> 请求磁盘缓存 > 请求内存缓存,所以合适的缓存策略,可以在不影响业务的情况下,极大地提升客户体验和后台服务器压力。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
博阳精讯
2024-07-25 广告
端到端优化(End-to-end Optimization)是指在机器学习或深度学习中,通过优化整个系统的性能来提高最终的输出结果。这种优化方法侧重于整个系统的端到端性能,而不是单独优化每个组件或模块。在深度学习中,端到端优化通常指的是将整... 点击进入详情页
本回答由博阳精讯提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式