什么是浏览器缓存?它从网页数据中存储了什么?

Asl*_*fry 2 asp.net-mvc caching

每当我遇到网站问题时,我会听到的第一个建议是"尝试清除浏览器缓存"以及"删除Cookie".那么这个浏览器缓存是什么?它存储什么,它有什么用?

我用Google搜索了.但是没有找到合适的答案.如果有人帮忙的话我很感激.

gma*_*man 5

浏览器缓存"缓存"(如保留本地副本)从Internet下载的数据.下次您的浏览器需要相同的数据时,它可以从缓存中获取(快速)而不是通过互联网下载(慢)

问题是数据可能很旧.例如,想象一下今天浏览器缓存了www.nytimes.com,24小时后你再次访问了www.nytimes.com.如果浏览器加载了缓存数据,那将是旧闻.

因此,服务器向浏览器发送标题(元数据),告诉他们应该缓存一些内容(如果有的话).

浏览器通常缓存的数据是"请求".换句话说,如果您的浏览器首次要求" http://foo.com/bar.html "浏览器"请求""foo.com"将其发送到"bar.html".如果"foo.com"的标题以某种方式设置,浏览器将保存"bar.html"的本地副本.如果您再次请求相同的内容,浏览器可能会从其缓存中加载"bar.html".我说"可能",因为它取决于从服务器发送的标头.服务器可以说多长时间(比如10分钟,10小时,10天等等)或者它可以说"根本不缓存这个,总是下载最新版本".

如果您使用浏览器的开发工具(如下所示的chrome)并查看网络选项卡(不确定在其他浏览器中调用它).再次加载页面,您可以看到所有请求.您还会注意到哪些是从缓存中加载的

网络标签

如果单击某个请求,您可以从浏览器(请求标头)和服务器(响应标头)中看到元数据

jquery标头

清除缓存的原因经常修复的问题是,如果由于某种原因服务器(一个错误?)说可以缓存或使用缓存版本,但服务器上的数据实际上已经更新.浏览器执行服务器告诉它要做的事情,就是使用缓存中的副本,而不是实际需要的新版本.浏览器本身也可能不时出现与缓存相关的错误.

当一切正常工作时,这很好,但如果一件事或另一件事错误配置或发送错误的标题,那么浏览器最终可能会从缓存中加载旧数据而不是下载最新数据.有效清除缓存会强制浏览器再次下载数据.

您可以在此处找到各种标头的详细信息.

  • 如果网站允许,Web浏览器可以缓存它下载的任何数据.这可以包括HTML,CSS,图片,视频等. (2认同)