为什么Cache-Control不生效呢

发布于 2022-09-11 22:16:07 字数 1187 浏览 17 评论 0

我想通过node.js代码来测试http的cache-control报头的生效情况,但是不太正常,首先看看代码如下:

let http = require('http');

let server = http.createServer(function(request, response){
    let url = request.url,
        content = null;

    console.log('收到http协议请求,请求地址是:' + url);

    if(url == '/' || url == '/index.html'){
        content = '<link rel="stylesheet" href="/register.css">page content';
        response.setHeader('Content-type', 'text/html');
    }else if(url == '/register.css'){
        content = 'body{color:red;}';
        response.setHeader('Cache-Control', 'max-age=43200');
        response.setHeader('Content-type', 'text/css');
    }

    if(content === null){
        console.log(url + ' 该地址无效');
        response.writeHead(404, {
            'Content-type' : 'text/html'
        });
        response.end('404啊亲!');
    }else{
        response.end(content);
    }
});

server.listen(8282, 'localhost');
console.log('server start at http://localhost:8282');

里面访问首页后,它请求的 /register.css 总是200状态码,不过在第2次请求后服务器确实是没有收到这个css的请求了。

可是换成nginx进行了以下配置以后,第2次请求都是302状态码的

location ~ .*\.(js|css)?$
{
    expires      12h;
}

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文