为什么响应304没有Content-Type标头?

时间:2015-06-28 11:09:59

标签: http express http-headers

我一直在玩express.js试图返回简单的json对象,并注意到即使我明确地将Content-Type标头设置为application/json,它只在第一次响应时可见,当状态代码是200. 304的每个后续回复都不会有Content-Type标题。

我的代码示例:

app.get('/user', function (req, res) {
    res.set('Content-Type', 'application/json');

    res.send([
        { user: "john", email: "john@example.com"},
        { user: "marry", email: "marry@example.com"},
        { user: "dan", email: "dan@example.com"}
    ]);
});

这是什么原因?

1 个答案:

答案 0 :(得分:8)

304 Not Modified表示请求包含conditional header,要求服务器仅在资源被修改时才响应资源的内容。

由于未返回任何内容,因此不会发送Content-Type标头。对于304 Not Modified HTTP回复,这是the recommended behavior

我对express.js一无所知,但我会研究正在进行什么样的缓存。