Last-Modified缓存和If-Modified-Since缓存

JAVA herman 879浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

在多说一下,这个也是在缓存时间已经失效,即Cache-Control:mac-age = 0 的情况下,而且上面的Etag和If-None-Match不相等的情况下;

Last-Modified指的是文件上一次被修改的时间(可以理解为服务器端的),, 会带着 If-Modified-Since(本地的)返回的时间,,本地的时间大于等于服务器端的时间的花,说明资源没有被改动过接着用缓存的,否则就要更新,从新发送web请求了,如果感觉拗口的话,贴一下参考的原话。

当资源过期时(也就是 Cache-Control:max-age=0,),发现资源具有Last-Modified声明,则再次向web服务器请求时带上头 If-Modified-Since,表示请求时间。web服务器收到请求后发现有头If-Modified-Since 则与被请求资源的最后修改时间进行比对。若Last-Modified的时间较新,说明最后修改时间较新,说明资源又被改动过,则响应整的资源重新从服务器读取,而不是读取缓存,返回200状态吗;若If-Modified-Since的时间比Last-Modified新或者相等,说明服务器的内容没有更新,直接读取缓存即可,返回304状态码,告知浏览器继续使用所保存的cache。

Last-Modified缓存和If-Modified-Since缓存

另外需要说明的是: cache-control      .Etag和If-None-Match   Etag和If-None-Match三者的权重是从左到右越来越小的;

还有一点需要说明的是,我们说的缓存~基本上都是GET方式的,像POST之类的通常情况下是不会进行缓存的;

说了这么多,缓存是好的,可以节约资源,减少服务器的压力,但是,设置太长的缓存时间的话,又不能及时的更新资源,具体如何取舍把握,还要视具体情况再说.

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » Last-Modified缓存和If-Modified-Since缓存