做网站视频一般上传到哪里,扬州学做网站培训多少钱,郑州网站制作专业乐云seo,网站改版 重新收录强制缓存
强制缓存#xff1a;以后的请求都不需要访问服务器#xff0c;状态码为 200协商缓存#xff1a;每次都判断一下#xff0c;告诉是否需要找缓存#xff0c;状态码为 304
默认强制缓存#xff0c;不缓存首页#xff08;如果已经断网#xff0c;那这个页面应该…强制缓存
强制缓存以后的请求都不需要访问服务器状态码为 200协商缓存每次都判断一下告诉是否需要找缓存状态码为 304
默认强制缓存不缓存首页如果已经断网那这个页面应该也访问不到所以首页不会被强制缓存引用的资源可以被缓存下来后续找缓存不会向服务器发送请求
例子下面设置 10s 内不要在向服务器发送请求
新建 cache.js 文件
const http require(http);
const fs require(fs);
const path require(path);
const url require(url);const server http.createServer((req, res) {const { pathname } url.parse(req.url);const filePath path.join(__dirname, pathname);console.log(pathname);// expires 老版本浏览器支持的 绝对时间// cache-control 相对时间res.setHeader(Expires, new Date(Date.now() 10 * 1000).toGMTString());res.setHeader(Cache-Control, max-age10);fs.stat(filePath, (err, statObj) {if (err) return (res.statusCode 404), res.end(Not Found);// 判断是否是文件if (statObj.isFile()) {fs.createReadStream(filePath).pipe(res);} else {res.statusCode 404;res.end(Not Found);}});
});
server.listen(5000);然后新建 public 文件夹里面添加 index.html 和 style.css
!DOCTYPE html
html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0title凯小默测试强制缓存/title
/headbodylink relstylesheet href/public/style.css
/body/htmlbody {background-color: seagreen;
}我们启动服务访问 http://127.0.0.1:5000/public/index.html加了缓存头之后css 资源第一次之后就从缓存中读取了过了 10 s 之后才继续请求一次服务器
nodemon cache.js强制缓存不会向服务器发送请求所以不会判断缓存是否过期所以需要设置缓存过期时间否则缓存永远不会过期会导致页面修改后视图依旧采用老的
另外还可以设置响应头
缓存但是每次都请求服务器
res.setHeader(Cache-Control, no-cache);不在浏览器中进行缓存每次请求服务器
res.setHeader(Cache-Control, no-store);