美文网首页
浏览器缓存?优点?清除方法?

浏览器缓存?优点?清除方法?

作者: 浪漫天下 | 来源:发表于2018-11-04 21:34 被阅读0次

    ☆前端优化:浏览器缓存技术介绍 - 简书

    浏览器缓存(适用于前端解决缓存问题) - 简书

    js清除浏览器缓存问题的个人见解 - Jack_zengzhen的博客 - CSDN博客

    1、什么是浏览器缓存?

        在Web性能优化上,我们总是追求网页能快速打开相应,这时就是浏览器缓存上场的时间了。

    概念:当浏览器向服务器发起资源请求后,相应后会加载各种资源:HTML页面、图片、JS文件、CSS文件,对于一些不经常变的内容,浏览器会将它们缓存下来,等下次再访问的时候,就直接从客户端加载这些资源了。

        这些被浏览器保存下来的资源成为缓存。(注意:和cookie和localStorage是不同的概念)

    2、浏览器缓存机制

    a、浏览器是否缓存、缓存多久都是有服务器来决定的。

             准确的说,当浏览器发起资源请求后,在服务器返回的相应头中的某些字段就包含了有关缓存的信息。

                  通用首部字段(就是请求报文和响应报文都能用上的字段)

                   请求首部字段

                   响应首部字段 

                    实体首部字段 

        b、浏览器缓存的分类

            根据上面4个不同字段的信息,可以将浏览器缓存分为 “强缓存” 和 “协商缓存” 。

           强缓存:Expires&Cache-Control (有效期)

        命中强缓存,http状态码为200.

         强缓存就是判断缓存是否在有效期内,如果在,则直接从客户端获取资源,不会发送请求向服务端。即使请求的资源已经更新。

          Expires是HTTP 1.0提出的一个表示资源过期时间的header,它描述的是一个绝对时间,由服务器返回,用GMT格式的字符串表示,如:Expires:Thu, 31 Dec 2037 23:55:55 GMT,包含了Expires头标签的文件,就说明浏览器对于该文件缓存具有非常大的控制权。

          Expires是较老的强缓存管理header,由于它是服务器返回的一个绝对时间,在服务器时间与客户端时间相差较大时,缓存管理容易出现问题,比如:随意修改下客户端时间,就能影响缓存命中的结果。所以在HTTP 1.1的时候,提出了一个新的header,就是Cache-Control,这是一个相对时间,在配置缓存的时候,以秒为单位,用数值表示

         Cache-Control描述的是一个相对时间,在进行缓存命中的时候,都是利用客户端时间进行判断,所以相比较Expires,Cache-Control的缓存管理更有效,安全一些。

         这两个header可以只启用一个,也可以同时启用,当response header中,Expires和Cache-Control同时存在时,Cache-Control优先级高于Expires。

     Cache-Control 指定 public 或 private 标志。

     协商缓存:Last-Modified&Etag(是否更新)

             当浏览器对某个资源的请求没有命中强缓存,就会发一个请求到服务器,验证协商缓存是否命中,如果协商缓存命中,请求响应返回的http状态为304并且会显示一个Not Modified的字符串


    3、浏览器缓存判断流程

    4、浏览器缓存的优点

    a、加快页面加载的速度,提升性能

    b、缓解服务端的压力(减少请求次数)

    c、减少带块消耗

    5、浏览器缺点

    有时候一些实时数据更新的页面是不能使用浏览器缓存的(如股票类网站实时更新数据),会出现一些错误的数据。

    6、清除浏览器缓存方法

                a、<meta>方法

             b、清除form表单缓存

            c、Jquery - ajax清除缓存

         d、后端清理

    相关文章

      网友评论

          本文标题:浏览器缓存?优点?清除方法?

          本文链接:https://www.haomeiwen.com/subject/lvudxqtx.html