为什么Cache-Control不生效呢

我想通过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;
}
阅读 3.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题