Web缓存是指Web服务器与客户端(浏览器)之间存在的Web资源(例如HTML页面,图片,JS,数据等)的副本。出色的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于可以重用缓存的文件,因此还可以减少带宽并减少网络负载。但是如何理解浏览器缓存?接下来,我将为您作简要介绍。
Web缓存的功能是什么?
1、减少网络带宽消耗。无论是对于网站运营商还是用户,带宽都是金钱,而过多的带宽消耗只会使网络运营商更便宜。使用Web缓存副本时,将仅生成最小的网络流量,可以有效地降低运营成本。
2、减轻服务器压力。设置网络资源的有效期后,用户可以重用本地缓存以减少对源服务器的请求并间接减轻服务器的压力。同时,搜索引擎的爬虫机器人还可以根据到期机制减少爬虫的频率,还可以有效地减轻服务器的压力。
3、减少网络延迟并加快页面打开速度。带宽对于个人网站运营商而言非常重要,但是对于大型互联网公司而言,有时他们确实会因为钱而不在乎。 Web缓存仍然有效吗?答案是肯定的。对于最终用户而言,使用缓存可以显着加快页面打开速度并获得更好的体验。

浏览器端的缓存规则
对于浏览器端缓存,这些规则在HTTP协议标头和HTML页面的Meta标签中定义。它们分别从新鲜度和检查值两个维度指定浏览器是直接在缓存中使用副本,还是需要转到源服务器以获取更新版本。
1)更新(过期机制):即缓存副本的有效期。缓存的副本必须满足以下任何条件,浏览器将认为它是有效且足够新的副本,并直接从缓存中获取副本并将其呈现:
包含完整的到期时间控制标头信息(HTTP协议标头),并且仍在有效期内;
浏览器已使用此缓存的副本并在一个会话中检查了新鲜度。
2)验证值(验证机制):服务器返回资源时,有时会在控制标头信息中携带此资源的实体标签Etag(实体标签),可用作浏览器的验证重新请求过程徽标。如果复选标记不匹配,则表明资源已被修改或过期,浏览器需要检索资源内容。
哪些请求无法缓存?
1) HTTP消息头包含Cache-Control:不缓存,pragma:no-cache或Cache-Control:max-age = 0,以此类推,以告知浏览器不要缓存请求;
2)需要缓存基于Cookie,身份验证信息等确定输入内容的动态请求;
3) HTTPS安全加密的请求(也通过测试发现有人实际上在头中添加了Cache-Control:max-age信息。在头中添加Cache-Control:Public之后,firefox可以响应HTTPS缓存,请参阅“ HTTPS的七个误解”);

4) POST请求无法缓存;
5)无法缓存HTTP响应标头中不包含Last-Modified / Etag或Cache-Control / Expires的请求。
缓存使用过程
1)本地缓存阶段:首先在本地查找资源,如果找到该资源并且该资源尚未过期,它将使用该资源,并且根本不会向服务器发送任何HTTP请求;
2)协商缓存阶段:如果在本地缓存中找到了相应的资源,但是不知道该资源是否已过期,则向服务器发送一个http请求,然后服务器判断该请求。要求。如果请求的资源在服务器上如果上面没有任何更改,请返回304,让浏览器使用本地找到的资源;
3)缓存失败阶段:当服务器发现所请求的资源已被修改,或者这是一个新请求(最初未找到该资源)时,服务器返回该资源的数据并返回200当然这是当找到资源时,如果服务器上资源不可用,则将返回404。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-377602-1.html
@小米公司
因为这一次到南海