我该使用哪种 MIME 类型来表示专属于我的程序的二进制文件?

302

我的程序使用自己的二进制文件类型,因此我认为不能使用 MIME 类型 text/plain,因为它不是 7 位 ASCII 文件。

我应该只是称其为 "application/myappname" 吗?

4个回答

461

我建议使用application/octet-stream,因为RFC2046中提到"octet-stream"子类型用于表示主体包含任意二进制数据,而且"接收到"application/octet-stream"实体的实现的推荐操作是简单地提供将数据放入文件中的选项[...]"。

我认为这样做可以获得更好的处理,避免在遇到未知的MIME类型时可能出现错误。


2
每当您的应用程序中只有一种二进制类型时,这是非常合适的类型。如果您有多个不同的格式,仍需要使用类似application/x.<something>application/vnd.<something>application/prs.<something>的内容。 application/octet-stream只有TYPE参数,不适用于机器使用。请参见https://datatracker.ietf.org/doc/html/rfc2046#section-4.5.1 - exhuma

19

6
为什么不使用标准化的application/octet-streamx-binary不是IANA标准化的媒体类型。消费程序可能会将其解释为二进制,因为它们不知道这种mime类型。但这并不是保证。而我们确实有一个明确的mime类型可用。 - Kissaki
application/x-binary 不遵循RFC-6838中规定的命名方案,因此应该避免使用。将其更改为 application/x.binary 可能会更好,但是RFC仍然不建议这样做。更好的选择是 application/prs.binaryapplication/vnd.binary,但在后一种情况下,您需要向IANA注册它。 - exhuma

6
浏览器可以识别mimetype标头,以便快速识别要用作目标的处理程序,例如,PDF文件将被下载并使用PDF阅读器程序执行,文件路径作为参数。如果您需要编写浏览器扩展来处理下载的文件,通过操作系统,或者您只是想使您的项目看起来更加“专业”,那么请继续选择一个独特的mimetype以供您使用,因为操作系统没有可用于打开它的句柄(一些浏览器有少量捆绑插件,例如新版Google Chrome具有内置的PDF阅读器)。如果您希望确保文件被下载,请查看此答案:https://stackoverflow.com/a/34758866/257319如果您想让您的文件类型特别有组织,可能值得在文件的前几个字节中添加一些字母,例如,每个JPG都在其文件开头有这个:

如果你可以承受4或8字节的跳跃,对于你在其余部分的工作可能会非常有帮助。

:)


6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接