当前位置首页 > 百科资料> 正文

浏览器缓存

2022-06-29 11:48:38 百科资料

浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。

浏览器缓存主要有两类:缓存协商:Last-modified ,Etag 和彻底缓存:cache-control,Expires。

  • 中文名称 浏览器缓存
  • 外文名称 Browser Caching
  • 作用 加速页面的阅览
  • 分类 缓存协商、彻底缓存
  • 清除缓存 internet选项

定义特征

  浏览器缓存(Browser Caching)是为了加速浏览,浏览器在用户磁盘上对请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速

  页面的阅览。它是网站访问统计最难解决的问题之一。

  但是,Web服务器可能因此而未计算一个页面或广告已被阅览的次数。

  缓存的方式节约了网络的资源,提高了网络的效率。

清理方法

清除缓存

  打开IE,选择"工具--internet选项",切换到"高级"选项卡,找到"关闭浏览器时清空internet临时文件夹",并将其选中,确定即可.

  要清空 Mozilla Firefox 的缓存,请按以下步骤操作:

  单击浏览器顶部的"Tools"(工具)菜单,并选择"Options"(选项)。

  单击"Privacy"(隐私)。

  单击"Cache"(高速缓冲)旁边的"Clear"(清空缓存)。

  单击"OK"(确定)。

  要清空 Mozilla 和 Netscape 的缓存,请按以下步骤操作:

  注销您的 AdSense帐户。关闭所有其他打开的浏览器窗口。

  单击浏览器顶部的"Edit"(编辑)菜单,然后选择"Preferences"(首选项)。

  单击"Advanced"(高级)旁边的"+"。

  单击"Advanced"(高级)下面的"Cache"(高速缓存)。

  单击"Clear Cache"(清除高速缓存)。

  单击"OK"(确定)。

  要清空 Safari 的缓存,请按以下步骤操作:

  注销您的 AdSense 帐户。关闭所有其他打开的浏览器窗口。

  打开浏览器工具栏中的"Safari"菜单。

  选择"Empty Cache"(清空缓存)。

  单击该对话框中的"Empty"(清空)。

  某些情况下,可能需要多次清空您的缓存。

  浏览器缓存主要有两类

  缓存协商:Last-modified ,Etag

  彻底缓存:cache-control,Expires

  缓存协商的意思是需要去服务器端询问页面有没有修改过,没有修改过则返回304直接使用缓存内容,否则返回新内容

  协商步骤:

  服务器发送带Last-modified:GMTtime 头的http response

  浏览器下次请求时带上if-modified-since:GMTtime http 请求头

  服务端用本地Last-modified时间与if-modified-since比较,计算浏览器数据是否过期并发送响应

  Etag的工作原理与Last-modified类似,不同点在于Etag的值是用户可自定义的

  缓存协商可应用在动态页面且实时性不是特别强的页面,如网站首页

  要清空 Chrome 的缓存,请按以下步骤操作:

  打开chrome浏览器,使用Ctrl+Shift+Delete快捷键,就会打开清理浏览数据页面,选择清理缓存选项,

  然后单击"清除浏览数据"按键即可。

  或者单击浏览器上的扳手-->选项-->高级选项-->隐私设置一栏中的清楚浏览数据 之后重复上面的步骤。

彻底缓存

  彻底缓存的意思是在缓存失效之前不再需要跟服务器交互

  常用的是Expires,Expires的值是一个绝对时间,由服务器产生

  这儿存在一个问题,就是服务器的时间可能给客户端的时间不一致导致缓存时间的偏差

  要解决这个问题就要使用cache-control,它保存的是一个相对浏览器的时间

  如果同时存在cache-control和Expires怎么办呢?

  浏览器总是优先使用cache-control,如果没有cache-control才考虑Expires

  浏览器缓存最大的价值是节省了带宽

  为什么没有提高吞吐率呢? 下面来分析一下

  这里分两种情况:静态页面和动态页面

  服务端加载静态页面需要进行磁盘IO,浏览器缓存则可节省这部分时间,不过服务器一般会用squid等工具进行缓存,所以静态资源在提高吞吐率方面效果不明显

  再来看一看动态资源

  动态资源也分为两类:实时动态和准实时动态

  实时动态是不能用浏览器缓存的

  准实时动态页面可节省磁盘IO和计算时间,但是让浏览器缓存的时间不可太久,且在本地重复访问的概率也不大

  所以说动态内容在提高吞吐率方面效果也不明显

  对于准实时动态页面倒是可以缓存在服务端,如squid

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net