问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是Web缓存?

发布网友 发布时间:2022-05-13 14:52

我来回答

2个回答

懂视网 时间:2022-05-14 01:10

一、概述

缓存通俗点,就是将已经得到的‘东东’存放在一个相对于自己而言,尽可能近的地方,以便下次需要时,不会再二笔地跑到起始点(很远的地方)去获取,而是就近解决,从而缩短时间和节约金钱(坐车要钱嘛)。Web缓存,也是同样的道理,说白了,就是当你第一次访问网址时,将这个东东(representations),如html页面、图片、JavaScript文件等,存在一个离你较近的地方,当你下次还需要它时,不用再一次跋山涉水到服务器(origin servers)去获取。继而,web缓存的优势也就很明显了:

  1、 减少了网络延迟,加快了页面响应速度,增强了用户体验嘛。(因为我是就近获取的,路程缩短了,所以响应速度当然比到遥远的服务器去获取快哦);

  2、 减少了网络带宽消耗嘛。(就近获取);

  3、 通过缓存,我们都不用到服务器 (origin servers)去请求了,从而也就相应地减轻了服务器的压力。

那web缓存将这些东东放在哪儿呢?下面我就看看有哪些缓存种类,从而了解放在哪吧。

二、Web缓存的种类

--数据库缓存--:

当web应用关系复杂,数据表蹭蹭蹭往上涨时,可以将查询后的数据放到内存中进行缓存,下次再查询时,就直接从内存缓存中获取,从而提高响应速度。

--CDN缓存--:

CDN通俗点,就是当我们发送一个web请求时,会先经过它一道手,然后它帮我们计算路径,去哪得到这些东东(representations)的路径短且快。这个是网站管理员部署的,所以他们也可以将大家经常访问的representations放在CDN里,这样,就响应就更快了。

--代理服务器缓存--:

代理服务器缓存,其实跟下面即将讲的浏览器缓存性质差不多,差别就是代理服务器缓存面向的群体更广,规模更大而已。即,它不只为一个用户服务,一般为大量用户提供服务,同一个副本会被重用多次,因此在减少相应时间和带宽使用方面很有效。

--浏览器缓存--:

简而言之,就是,每个浏览器都实现了 HTTP 缓存,我们通过浏览器使用HTTP协议与服务器交互的时候,浏览器就会根据一套与服务器约定的规则进行缓存工作。当我们点击浏览器上‘后退’或者‘前进’按钮时,显得特别有用。

三、Web缓存的执行机制

所谓机制就是一些双方的约定,清晰地告诉对方,什么时候该做什么事。web缓存也一样,你总得告诉我(请求)什么时候到缓存中去获取,什么到服务器去获取representations吧。So,也得有一套相应的机制,web 缓存机制分为两大部分http协议(HTTP1.0和HTTP1.1)和网站管理人员制定的协议。抛开网站内部制定的协议,我们来看看http协议中定义的缓存机制。

By the way,我们可以在HTML文档中的中通过来缓存,如下:

但,它只有部分浏览器可以用,并且代理服务器也不会鸟它。(因为meta在html中,代理服务器几乎不回去读它滴)。

--http缓存机制--

1、 Expires

http缓存机制主要在http响应头中设定,响应头中相关字段为Expires、Cache-Control、Last-Modified、If-Modified-Since、Etag。

HTTP 1.0协议中的。简而言之,就是告诉浏览器在约定的这个时间前,可以直接从缓存中获取资源(representations),而无需跑到服务器去获取。

另:Expires因为是对时间设定的,且时间是Greenwich Mean Time (GMT),而不是本地时间,所以对时间要求较高。

2、 Cache-Control

HTTP1.1协议中的,因为有了它,所以可以忽略上面提到的Expires。因为Cache-Control相对于Expires更加具体,细致。

且,就算同时设置了Cache-Control和Expires,Cache-Control的优先级也高于Expires。

下面就来看看,Cache-Control响应头中常用字段的具体含义:

  (1)、max-age:用来设置资源(representations)可以被缓存多长时间,单位为秒;

  (2)、s-maxage:和max-age是一样的,不过它只针对代理服务器缓存而言;

  (3)、public:指示响应可被任何缓存区缓存;

  (4)、private:只能针对个人用户,而不能被代理服务器缓存;

  (5)、no-cache:强制客户端直接向服务器发送请求,也就是说每次请求都必须向服务器发送。服务器接收到请求,然后判断资源是否变更,是则返回新内容,否则返回304,未变更。这个很容易让人产生误解,使人误以为是响应不被缓存。实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。

  (6)、no-store:禁止一切缓存(这个才是响应不被缓存的意思)。

3、 Etag & If-None-Match

Etag是属于HTTP 1.1属性,它是由服务器生成返回给后端,当你第一次发起HTTP请求时,服务器会返回一个Etag,并在你再一次发起同一个请求时,客服端会同时发送一个If-None-Match,而它的内容就是Etag的值。最后,服务器会比对这个客服端发送过来的Etag是否与服务器的相同,如果相同,就If-None-Match的值为false,返回304继续使用本地缓存,否则就200。说白了,Etag就是服务器生成的一个标记而已。且Etag的优先级高于Last-Modified。

4、 Last-Modified & If-Modified-Since

Last-Modified与Etag类似。不过Last-Modified表示响应资源在服务器最后修改时间而已。与Etag相比,不足为:

  (1)、Last-Modified标注的最后修改只能精确到秒级,如果某些文件在1秒钟以内,被修改多次的话,它将不能准确标注文件的修改时间;

  (2)、如果某些文件会被定期生成,当有时内容并没有任何变化,但Last-Modified却改变了,导致文件没法使用缓存;

  (3)、有可能存在服务器没有准确获取文件修改时间,或者与代理服务器时间不一致等情形。

然而,Etag是服务器自动生成或者由开发者生成的对应资源在服务器端的唯一标识符,能够更加准确的控制缓存。

四、扩展阅读

[1]、"Caching Tutorial"

热心网友 时间:2022-05-13 22:18

“web缓存,是指在用户访问网站后,在用户客户端留下的缓存。没缓存的情况下,客户端会对整站进行加载。有缓存的时候,会跳过已缓存的内容。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
形容手表很舒服的句子 情侣手表的对话句子 租门面和房东鉴了十年合同,房东要退店面,我可以不退吗,继续经 ...一篇朝花夕拾里十篇小短文的主要内容及作者的情感和主要人物的... 什么叫狼狗 狼狗的生活习性有哪些? 起个姓罗好听的宝宝名字 野火的近义词 个是词语解释 请旌词语解释 为什么我的OPPOa37内存超过2G还是下不了王者? 在HTTP报文中增加缓存控制和在html的meta中做缓存控制有什么区别 http协议支持的缓存方式有哪些 traffic server 怎么缓存http页面 http如何控制缓存的生命周期? HTTP缓存技术,304和200有何区别 HTTP协议中可以控制缓存的有哪些 excel中如何利用函数查找引用 在EXCEL中,如何用VLOOKUP函数对一个已经进行了筛选的文件进行数据的查找引用 手机刷入错误recovery,然后在recoverymode界面一直重启,连不上电脑.怎么办? 【意见反馈】提问时不能加悬赏,别人回答了不知道怎么回复【你的设备信息: 客户端版本:3.4.3,手 windows文件在苹果乱码怎么办 刷错包了怎么办啊,手机开不了机了! 苹果电脑将都是word的文件夹压缩后发给同事,同事的windows系统打开都是乱码!怎么处理? 百度知道为什么不能提交意见反馈 mac系统的压缩软件win7打开都是乱码怎么办呢??电脑牛人快现身,帮帮我啦~! 淘宝意见反馈是什么意思 苹果OS系统压缩文档后用WIN系统打开乱码 [求助]为“客户意见反馈系统”征名 早餐怎么吃最健康且有助于减肥的? 康佳mirrorop多屏同步下载 请问大家,OPPO A59m手机里的存储空间很多,为什么更新王者的时候下载到一就关机重启了? 电视机型号LED42IS988PD的康佳电视如何才能使用“MirrorOp多屏同步”的功能? 请教HttpRuntime.Cache 怎么清空所有缓存 康佳8200DE能进行MirrorOp多屏同步吗?具体怎么操作,真心求解。。。 httputil怎么设置不缓存 我看一些网上的视频 像多屏互动一样 手机上有很多按键能玩电脑上的游戏 手机画面和电脑画面同步 这是 我家有台海尔三屏互动电视,求海尔电视的多屏互动软件? 小车驾驶证和大车驾驶证有什么区别 个人想考 应该考哪一种好 驾照考大车小车有什么区分 LG LA6600 能实现与iPhone5多屏互动么,如果可以该怎么弄。 考驾照有分大车或小车吗 大家好,问一下,驾照考试,所谓的a照b照c照,有什么不一样?开大车跟小车的有什么不同?? 科目 驾驶大车和小车有什么区别各注意什么 驾驶证每年都要年审吗?大车、小车驾照年审有区别吗? 驾驶证理论考试、大车小车的是一样的吗??? 大型客车和大型专用汽车的驾照有什么区别 用黑鲨重装系统时自动关机后打不开联想笔记本电脑怎么办 用黑鲨大师重装系统失败,现在无法开启电脑正常页面,就卡在这里了。 红木沙发有响声怎么办谁清楚吗