MimeTypes是否是小写/不区分大小写的?

22

我们有一些处理消息的代码,需要根据mimetypes进行匹配。初步看来它们都是小写的,这让人想知道:

  • 它们是通过惯例变成小写的,还是
  • 这是规范的一部分?(在RFC 2045/2046中搜索大小写等内容没有返回任何结果)

因此,为了微小的性能提升,是否可以省略大小写比较?


(Note: HTML标签已被保留)

"application/vnd.ms-word.document.macroEnabled.12" 是一个常用大写字母表示的 MIME 类型的例子。 - Nicolas Raoul
1个回答

30

MIME类型不区分大小写,但按惯例它们是小写字母。

RFC 2045 表示:“类型、子类型和参数名不区分大小写”。如果您有一个 MIME 类型为 text/plain ,那么它是一种 text 类型和一种 plain 子类型。因此,根据规范,它们不区分大小写。

正如Cromax在评论中所述,MIME 类型参数值可能区分大小写。有关详细信息,请参见该评论或规范。但是,如果您仅匹配 MIME 类型、子类型或参数名称,则它们不区分大小写。据说,大多数人处理 MIME 类型和可能是子类型,其中这些都是不区分大小写的。


值得添加上述RFC中的这句话:“类型、子类型和参数名称不区分大小写。例如,TEXT、Text和TeXt都是等效的顶级媒体类型。参数值通常区分大小写,但有时根据预期使用情况以不区分大小写的方式进行解释。(例如,多部分边界区分大小写,但message/External-body的“access-type”参数不区分大小写。)”。 - Cromax

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