ChatGPT解决这个技术问题 Extra ChatGPT

哪种 MIME 类型用于特定于我的程序的二进制文件?

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

我应该称它为“应用程序/myappname”吗?


u
user786653

我推荐 application/octet-stream,因为 RFC2046 说““八位字节流”子类型用于指示正文包含任意二进制数据”和“接收“应用程序/八位字节流”的实现的推荐操作实体是简单地提供将数据放入文件[...]”。

我认为这样你会从任意程序中得到更好的处理,当遇到未知的 mime 类型时可能会出错。


当您的应用程序中只有 一个 二进制类型时,这是一个非常合适的类型。如果您有多种不同的格式,您仍然需要使用列表 application/x.<something>application/vnd.<something>application/prs.<something>application/octet-stream 只有 TYPE 参数,它不适合机器使用。请参阅datatracker.ietf.org/doc/html/rfc2046#section-4.5.1
s
serup

你也许可以使用:

application/x-binary

what is MIME types

list of mime types

see explanation


为什么不改用 standardized application/octet-streamx-binary 不是 IANA standardized。无论如何,消费程序可能会将其解释为二进制,因为它们不知道那种 mime 类型。但这不是保证。我们确实有一个明确的 mime 类型。
application/x-binary 不遵循 RFC-6838 中列出的命名方案,因此应避免使用。将其更改为 application/x.binary 会更好,但 RFC 仍然不鼓励这样做。更好的选择是 application/prs.binaryapplication/vnd.binary,但在后一种情况下,您需要向 IANA 注册。
C
Community

浏览器识别 mimetype 标头的目的是为了(快速)识别处理程序以使用下载的文件作为目标,例如,将下载 PDF,并且您的 Adobe Reader 程序将使用 PDF 文件的路径执行为一个论点,

如果您需要编写一个浏览器扩展来通过您的操作系统处理您下载的文件,或者您只是想让您的项目看起来更“专业”并选择一个独特的 mimetype 供您使用,它会让没有区别,因为操作系统没有打开它的句柄(一些浏览器几乎没有捆绑插件,例如新的 Google Chrome 版本有一个内置的 PDF 阅读器),

如果您想确保下载文件,请查看以下答案:https://stackoverflow.com/a/34758866/257319

如果你想让你的文件类型特别有条理,可能值得在文件的前几个字节中添加几个字母,例如,每个 JPG 在它的文件开头都有这个:

https://i.stack.imgur.com/gj30t.jpg

如果您负担得起 4 或 8 个字节的跳跃,那么在 rest of the way

:)


C
Community

根据规范,RFC 2045 #Syntax of the Content-Type Header Field application/myappname 是不允许的,但 application/x-myappname 是允许的,并且对我来说听起来最适合您的应用程序。