据我所知,brainfuck 没有“官方”媒体类型(此处列出的官方类型)。您当然可以在没有正式注册类型的情况下自由地制作自己的类型,但是在选择要使用的名称之前,您应该考虑一些事情。您需要的所有信息都在RFC2046中。我将在下面讨论相关部分。
顶级媒体类型
据我所知,您可以选择的两个选项是text
和application
:
text
根据第 3 节:
子类型“plain”特别表示不包含任何格式命令或指令的纯文本。纯文本旨在“按原样”显示。除了支持指定的字符集外,不需要特殊的软件来获得文本的全部含义。
如果您打算显示数据而不是由应用程序解释,我会使用它。
第 4.1.4 节提到了以下关于无法识别的子类型:
只要 MIME 实现知道如何处理字符集,“文本”的无法识别子类型就应该被视为“普通”子类型。
将顶级媒体类型设置为文本将确保无法识别完整类型的兼容应用程序仍将数据呈现为文本。
application
如果您打算进一步解释或处理您的数据,则应使用应用程序顶级媒体类型。如上面的论点,如果您将数据标记为application
,则接收它的任何程序都更有可能以合理的方式运行。
第 4.5.3 节处理无法识别的应用程序类型:
预计未来将定义许多其他“应用程序”子类型。MIME 实现必须至少将任何无法识别的子类型视为等同于“application/octet-stream”。
阅读相应的部分(第 4.5.1 节),我们会发现应用程序应该如何处理八位字节流:
对于接收“application/octet-stream”实体的实现,推荐的操作是简单地将数据放入文件中,取消任何 Content-Transfer-Encoding,或者将其用作用户指定的输入过程。
如果这似乎是在数据无法识别时处理数据的最合乎逻辑的方式,那么application
它适合您。
子类型
选择子类型要容易得多。第 6 节涵盖实验媒体类型:
以字符“X-”开头的媒体类型值是私有值,由相互同意的系统使用。任何没有严格和公开定义的格式都必须以“X-”前缀命名,公开指定的值不得以“X-”开头。
所以你的子类型应该是X-brainfuck
.
概括
你有两个选择:
text/X-brainfuck
application/X-brainfuck
如果您打算让应用程序将数据视为纯文本并显示它,请选择 1。如果您打算解释或执行数据,请选择 2。如果您不确定要发生什么,请选择 2,因为默认期望是如果应用程序无法识别类型,它将提示用户做什么。