Web缓存

        参考文章 浅谈web缓存

        浏览器缓存是将文件保存在客户端,在同一个会话过程中会检查缓存的副本是否足够新,在后退网页时,访问过的资源可以从浏览器缓存中拿出使用。通过减少服务器处理请求的数量,用户将获得更快的体验。

        页面的缓存状态是由header决定的,header的参数有四种:

        一、Cache-Control:

                1、max-age(单位为s)普通缓存 指定设置缓存最大的有效时间。当浏览器向服务器发送请求后,在max-age这段时间里浏览器就不会再向服务器发送请求了。

                2、s-maxage,同max-age,用于代理缓存(CDN),在指定时间内不会发起请求,max-age用户自己的服务器

                3、public 指定响应会被缓存,并且在多用户间共享。则默认为public。

                4、private 响应只作为私有的缓存(见下图),

                5、no-cache 指定不缓存响应,但是设置了no-cache之后并不代表浏览器不缓存,而是在缓存前要向服务器确认资源是否被更改。因此有的时候只设置no-cache防止缓存还是不够保险,还可以加上private指令,将过期时间设为过去的时间。

                6、no-store 绝对禁止缓存,每次请求资源都要从服务器重新获取。

                7、must-revalidate指定如果页面是过期的,则去服务器进行获取。

    二、Expires

                缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点。也就是说,Expires=max-age + 请求时间,需要和Last-modified结合使用。但在上面我们提到过,cache-control的优先级更高。 Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。

      三、Last-modified

              服务器端文件的最后修改时间,需要和cache-control共同使用,是检查服务器端资源是否更新的一种方式。当浏览器再次进行请求时,会向服务器传送If-Modified-Since报头,询问Last-Modified时间点之后资源是否被修改过。如果没有修改,则返回码为304,使用缓存;如果修改过,则再次去服务器请求资源,返回码和首次请求相同为200,资源为服务器最新资源。


    使用方法: 在meta中设置,参考文章 html meta标签使用总结

你可能感兴趣的:(Web缓存)