我一直在玩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"}
]);
});
这是什么原因?
答案 0 :(得分:8)
304 Not Modified
表示请求包含conditional header,要求服务器仅在资源被修改时才响应资源的内容。
由于未返回任何内容,因此不会发送Content-Type
标头。对于304 Not Modified
HTTP回复,这是the recommended behavior。
我对express.js一无所知,但我会研究正在进行什么样的缓存。