哪种 MIME 类型用于特定于我的程序的二进制文件?
Posted
技术标签:
【中文标题】哪种 MIME 类型用于特定于我的程序的二进制文件?【英文标题】:Which MIME type to use for a binary file that's specific to my program? 【发布时间】:2011-10-10 16:00:05 【问题描述】:我的程序使用自己的二进制文件类型,所以我假设我不能使用 MIME 类型 text/plain,因为它不是 7 位 ASCII 文件。
我应该将其称为“应用程序/myappname”吗?
【问题讨论】:
【参考方案1】:根据规范RFC 2045 #Syntax of the Content-Type Header Field application/myappname
是不允许的,但application/x-myappname
是允许的,并且对我来说听起来最适合您的应用程序。
【讨论】:
【参考方案2】:你也许可以使用:
application/x-binary
what is MIME types
list of mime types
see explanation
【讨论】:
为什么不改用standardizedapplication/octet-stream
? x-binary
不是 IANA standardized。无论如何,消费程序可能会将其解释为二进制,因为它们不知道那种 mime 类型。但这不是保证。我们确实有一个明确的 mime 类型。
application/x-binary
不遵循RFC-6838 中规定的命名方案,因此应避免使用。将其更改为 application/x.binary
会更好,但 RFC 仍然不鼓励这样做。更好的选择是application/prs.binary
或application/vnd.binary
,但在后一种情况下,您需要向 IANA 注册。【参考方案3】:
mimetype 标头被浏览器识别,以便(快速)识别处理程序以使用下载的文件作为目标,例如,将下载 PDF 并且您的 Adobe Reader 程序将使用PDF 文件作为参数,
如果您需要编写一个浏览器扩展程序来通过您的操作系统处理您下载的文件,或者您只是想让您的项目看起来更“专业”,请选择一个独特的 mimetype 供您使用, 这没有什么区别,因为操作系统没有打开它的句柄(一些浏览器几乎没有捆绑插件,例如新的 Google Chrome 版本有一个内置的 PDF 阅读器),
如果您想确保下载文件,请查看以下答案:https://***.com/a/34758866/257319
如果你想让你的文件类型特别有条理,可能值得在文件的前几个字节中添加几个字母,例如,每个 JPG 在它的文件开头都有这个:
如果你能负担得起 4 或 8 个字节的跳转,rest of the way 对你很有帮助
:)
【讨论】:
【参考方案4】:我推荐application/octet-stream
,因为RFC2046 说““八位字节流”子类型用于指示主体包含任意二进制数据”和“接收“应用程序/八位字节”的实现的推荐操作-stream" 实体只是提供将数据放入文件[...]"。
我认为这样可以更好地处理任意程序,当遇到未知的 mime 类型时可能会出错。
【讨论】:
当您的应用程序中只有 一个 二进制类型时,这是一个非常合适的类型。如果您有多种不同的格式,您仍然需要使用某些列表application/x.<something>
、application/vnd.<something>
或application/prs.<something>
。 application/octet-stream
只有 TYPE
参数,它不适合机器使用。见datatracker.ietf.org/doc/html/rfc2046#section-4.5.1以上是关于哪种 MIME 类型用于特定于我的程序的二进制文件?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 FILE 对象将哪种 mime 类型用于 .MSG 文件