【发布时间】:2016-09-03 10:29:16
【问题描述】:
我最近一直在做一个提供静态文件的小项目。我希望能够提供不同类型的文件,例如:
html, jpg, png, pdf, doc...
所有文件似乎都可以在不同的浏览器中正确呈现,而无需指定 MIME 类型。
例如,如果我提供一个图像并声明一个 MIME 类型,我会在我的 node.js 代码中写下这个:
response.writeHead(200, {'Content-Type': 'image/jpg'});
response.end(data);
忽略 MIME 类型将在不同的浏览器中呈现完全相同的结果:
response.writeHead(200);
response.end(data);
据我了解,如果标头中没有声明 MIME 类型,浏览器会尽力解决。
根据HTTP specifications,'Content-Type' 标头不是必需的。
与所有多部分 MIME 类型一样,每个部分都有一个可选的 “Content-Type”,默认为 text/plain。
我应该为每个响应声明一个 MIME 类型吗?为什么?
【问题讨论】:
-
您指向的规范的那部分(顺便说一句已被 rfc7578 废弃)是关于从客户端角度进行的多部分形式编码。您的问题似乎是关于服务器是否应包含 Content-Type 标头。哪些是不相关的主题。
-
这与 JavaScript 或 Node.js 无关。服务器如何实现并不重要。
标签: http http-headers mime-types mime