简述清除浏览器缓存

目录

1、什么是浏览器缓存

2、为什么要清除浏览器缓存

3、怎么清除浏览器缓存

4、补充知识


1、什么是浏览器缓存

        浏览器缓存(也叫客户端缓存)是指浏览器在读取网页内容时,会将部分内容保存到电脑本地磁盘中,以便下次读取时能够直接使用这些之前缓存的内容,以提升浏览速度。这部分缓存的内容包括图片、CSS文件、JavaScript文件等。另外,浏览器缓存还会保存上次访问过的网页。当浏览器再次访问该网站时,浏览器直接从本地加载,不需要去服务端请求。

        浏览器缓存的优点包括:

  • 减少服务器负担,提高网站性能
  • 加快客户端网页的加载速度,提升用户体验
  • 减少多余网络数据传输

2、为什么要清除浏览器缓存

        默认情况下,浏览器会根据客户端的请求头中的内容来判断客户端是否还存有缓存的版本(缓存的分类和原理可参考第4点的补充内容),如果存在就把它直接发送给客户端,而不用再从服务器上去取。

        但是,浏览器缓存也有弊端。有时为了使某些文件不进入浏览器缓存,如果不定义好缓存头,不把这些文件设置为“禁止缓存”,它们就会被浏览器缓存,使得网站更新文件后,客户端浏览器会仍然访问缓存文件,而不是新的文件,从而造成无法及时看到更新的内容。

        特别是在测试验证缺陷修改情况时,前端内容修改后,测试最好清除缓存查看更新内容。

3、怎么清除浏览器缓存

        以IE浏览器为例

  • 方法一:同时按下Ctrl+Shift+Delete键,出现如下图所示页面:

  • 方法二:点击右上角的“...”然后选择“清理痕迹”,如下图所示:

简述清除浏览器缓存_第1张图片

  • 方法三:同时按下Ctrl+F5键强制刷新网页

                注意:默认情况下,在资源缓存失效前,再次请求,会先检查强缓存,强缓存未命中再发送请求到服务器检查是否满足协商缓存,如果协商缓存命中,浏览器就从缓存读取资源,如果协商缓存未命中,浏览器从服务器读取最新的资源

                Ctrl+F5键刷新网页时,直接从服务器加载,跳过强缓存和协商缓存

                F5刷新网页时,跳过强缓存,但会检查协商缓存

4、补充知识

        浏览器缓存分为强缓存和协议缓存:

  • 强缓存

        强缓存是一种浏览器缓存机制,用于控制浏览器是否直接从本地缓存中获取资源,而不是向服务器发送请求。强缓存基于HTTP请求头中的Expires和Cache-Control两个字段来进行控制,用来表示资源的缓存时间。Expires header描述的是绝对时间,Cache-Control描述的是相对时间,以秒针为单位。

        当浏览器第一次访问一个资源时,服务器在返回这个资源的同时,在respone的header加上Expires或者Cache-Control的header,浏览器会将该资源的缓存信息存储在本地。在后续的请求中,浏览器会先检查该资源的缓存信息,如果资源的Expires或Cache-Control字段表示资源未过期,则浏览器直接从本地缓存中获取资源,不会向服务器发送请求。这样可以减少重复的数据请求,避免通过网络再次加载资源,节省流量,并提高网页的加载速度。

        强缓存的优点是可以减轻服务器的访问压力,提高网页的加载速度,提升用户体验。但是,如果服务器上的资源发生了更改,而强缓存导致浏览器仍然从本地缓存中获取旧资源,就会影响用户的浏览体验。因此,对于一些频繁更新的资源,可能需要使用协商缓存来确保资源的实时性和准确性。

  • 协商缓存

        协商缓存,也称为对比缓存,是一种服务器端的缓存策略。当客户端再次请求资源时,服务器会根据客户端提供的资源标识来判断资源是否已经更改。如果资源未更改,服务器将返回304状态码,告诉浏览器从本地缓存中获取资源;如果资源已更改,服务器将返回200状态码和新的资源。

        在实现协商缓存时,服务器会在第一次响应的header中携带资源标识,如Last-Modified或Etag(如下图所示)。客户端在后续请求时会带上相应的请求字段If-Modified-Since或If-None-Match,与服务器端进行通信。通过这种方式,服务器可以根据资源标识来判断请求的资源是否可以缓存访问。

简述清除浏览器缓存_第2张图片

        协商缓存可以提高缓存效率,减少不必要的网络传输,提高响应速度。同时,它也可以减轻服务器的负载,减少服务器的带宽消耗。

        总结一下:有大量静态资源的网页要用强缓存,动态资源慎用;强缓存和协商缓存的共同点是:如果命中,都是从客户端缓存中加载资源;不同点是:强缓存不发送请求到服务器,协商缓存会发送请求到服务器

你可能感兴趣的:(软件测试,缓存)