【发布时间】:2011-08-27 05:32:46
【问题描述】:
我是否有理由不将我的内容类型作为二进制文件发送给所有内容?我对正确的http有点天真,但它似乎适用于一切。以这种方式工作会遇到哪些陷阱?
【问题讨论】:
标签: http node.js http-headers
我是否有理由不将我的内容类型作为二进制文件发送给所有内容?我对正确的http有点天真,但它似乎适用于一切。以这种方式工作会遇到哪些陷阱?
【问题讨论】:
标签: http node.js http-headers
如果您将样式表作为内容类型二进制发送,IE9 将不会呈现它。它拒绝呈现任何不是 text/css 的样式表。这可能足以阻止人们不使用 IE9 访问您的网站。
更不用说其他好处,例如浏览器根据用户偏好以不同方式处理特定内容类型。
编辑 在这里,您可以使用它,它将更容易确定内容类型。该模块将有两种方法。 getExt 和 getContentType。如果您将扩展名传递给 getContentType,它将返回该文件的 Content-Type。我不是编译所有内容类型的人,不幸的是我忘记了我在哪里找到它...
【讨论】:
如果您指定正确的内容类型,请求文件的应用程序/浏览器可以正确处理它
例如,如果您正在下载一个pdf文件,浏览器知道如何处理内容类型“application/pdf”,并会直接在浏览器中打开该文件,如果它不知道类型,它会只是要求你下载文件
浏览器还可以让你指定一个特定的程序,你可以从中打开特定类型的文件,例如,如果你下载一个 torrent 文件,你可以告诉你的浏览器用 uTorrent 打开它,下次再打开一个 torrent 文件下载了也会直接用uTorrent打开
在 Node.js 中,您可以通过以下方式获取文件的内容类型:
type = require('mime').lookup(path);
【讨论】: