700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 静态资源使用时间戳控制浏览器缓存

静态资源使用时间戳控制浏览器缓存

时间:2023-02-03 16:03:53

相关推荐

静态资源使用时间戳控制浏览器缓存

前言:

我们访问一些网站的是时候,经常看到静态资源后面都有一个时间戳或日期之类的,其实是为了控制缓存,如图左:

Http响应码304

这里我们先谈下http响应码304,首先304状态码表示浏览器数据未发生改变,直接使用本地缓存。

请求过程:

浏览器向服务端请求资源,服务器会看是否携带Last Modified头,即上次修改时间,若没有则响应200;

若有则比较Last Modified和服务端资源修改时间,若客户端资源修改时间小于服务器资源修改时间,则响应200;若大于则响应304,直接使用客户端缓存。

为什么静态资源要加时间戳

上面讲到Http 304状态码其实已经帮我们实现了控制缓存功能 (其实缓存功能本质是浏览器帮我们实现的,这点要分清),为什么还要再静态资源后面加时间戳呢?

其实,在生产环境中,我们会存在资源频繁的修改和上线的情况,有时会存在这样的情况:

服务器在-10-01上线用户在-10-05访问,浏览器记录下修改时间-10-05上线新css/js等文件,最后一次修改时间还是保留上次上线的时间(极端情况)-10-06 用户再次访问,发现客户端最后修改时间 > 服务器文件修改时间,因此不会刷新缓存

为了避免浏览器一直使用旧的缓存资源,所以上线时,一般都会给静态资源加上一个时间戳(一般为上线日期),如index.js?v=-5-15,实现强制刷新浏览器缓存。

温馨提示: 作为用户来说当发生缓存不更新时,我们可以清除浏览器缓存,或使用Ctrl+F5强制刷新。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。