关于浏览器缓存控制的一个疑问

发布于 2022-08-28 01:14:56 字数 500 浏览 18 评论 0

今天看别人技术博客的时候看到这样一段话:

聪明的开发者会把Last-Modified 和ETags请求的http报头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服 务器首先产生 Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服 务器验证其(客户端)缓存。

然后我就在想,我们自己开发的时候页面中是可设定Last-Modified的,这个值一般设置为当前时间点,那我们每一次去请求页面的时候,这个时间点不是在变动的吗?这样下来岂不是每次都是重新加载了,要怎么样写才能实现上面那位博主所说的在服务器端对这两项的值是否变动进行判断呢?关于浏览器缓存这块,偶尔是有看些http相关的资料,然后就了解自己可以设置cache-control,其余一般的工作就交给浏览器自己了,它好像会在一些情况下返回304(not changed)状态码,这个应该就是调用的缓存吧,但其实有点不知其所以然,还请各位帮忙释疑,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岁吢 2022-09-04 01:14:56

这个值一般设置为当前时间点,那我们每一次去请求页面的时候,这个时间点不是在变动的吗?这样下来岂不是每次都是重新加载了

Last-Modified 为什么要设置成当前时间呢?

Last-Modified 意思是最后修改时间,看你的业务逻辑和缓存时间,决定你设置为什么值。

这个值通常是存放在数据库里面,当页面内容修改以后,则更新这个值。

暖心男生 2022-09-04 01:14:56

希望题主先了解一下Last-Modified是啥意思在说吧。

如果不明白,可以看看 @lidashuang 推荐的两篇文章

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文