响应标头中Content-Type的目的是什么?

时间:2019-09-17 12:46:58

标签: node.js express content-type

const binary = xxxxx;
res.set('Content-Type', 'image/jpg');
res.send(binary);

上面是返回图像的示例,在快速路线上定义。我不明白的是,尽管我将Content-Type更改为application/json,它似乎也可以工作吗?

const binary = xxxxx;
res.set('Content-Type', 'application/json'); //Still returning an image?
res.send(binary);

1 个答案:

答案 0 :(得分:2)

Content-Type标头仅指示资源的媒体类型。浏览器可以使用MIME嗅探,在某些情况下可以完全忽略它。为防止此行为,可以将X-Content-Type-Options设置为nosniff

出现一个问题:我是否还需要设置此实体标头?如果不进行设置,则强制浏览器每次都嗅探MIME类型,从而有可能将响应主体解释和显示为不同于预期类型的​​内容类型。如果您的服务器允许用户上传文件,则黑客可以通过以某种方式来操纵XSS攻击,以使内容被Web应用程序接受并被浏览器呈现为HTML。他可以将代码注入图片文件,并让受害者通过查看图片来执行。