是否有必要在 Node.js 中设置 Content-Type?

Rob*_*Rob 5 javascript content-type http-headers node.js

刚开始使用 Node.js,在看到几个例子后,我发现通常Content-Type在返回一些内容之前设置。

对于 HTML,通常是这样的:

res.writeHead(200, {'Content-Type': 'text/html'});
res.write(html);
res.end();
Run Code Online (Sandbox Code Playgroud)

对于图像:

res.writeHead(200, {'Content-Type': 'image/png'});
res.write(img, 'binary');
res.end();
Run Code Online (Sandbox Code Playgroud)

我阅读了.write()文档,它说如果没有指定标题“它将切换到隐式标题模式并刷新隐式标题”

通过一些测试,我发现我可以像这样写一行:

res.end(html); // or
res.end(img);
Run Code Online (Sandbox Code Playgroud)

这两个工作正常。我还使用本地 Apache 服务器进行了测试,当我查看加载图像时设置的标头时,那里没有Content-Type设置标头。

我需要麻烦设置它们吗?如果我不这样做,可能会出现什么情况或错误?

log*_*yth 6

Content-Type头在技术上是可选的,但后来你离开它的浏览器基本上你正在返回的内容类型。通常,Content-Type如果您知道类型(您可能知道),则应始终指定 a 。