媒体类型的后缀和子类型可以互换使用吗?

时间:2014-06-23 19:54:39

标签: http content-type specifications media-type

虽然未在IETF RFC 6838中直接说明,但在阅读文本(并咨询wikipedia)后,可以得出结论:媒体类型的一般模式如下:

type name / [ tree. ] subtype name [ +suffix ] [ ; parameters ]

内容类型和接受HTTP标头都使用互联网媒体类型(如RFC 2616中所述)。

RFC 6838还声明了以下关于“+后缀”的内容:

  

“+ suffix”构造了尚未注册的结构化语法   考虑到与未来发生冲突的可能性,不应该使用   后缀定义。

RFC 6839定义了以下注册后缀:

"+json", "+ber", "+der", "+fastinfoset", "+wbxml" and "+zip"

现在,请采取以下数据:

{
  "title": "<h1>Some formatted title</h1>",
  "body": "here's a <b>long</b> formatted text with <i>stuff</i>"
}

  • text/html+json是一个很好的媒体类型吗?
  • 如果我使用YAML代替JSON,该怎么办? (text/html+yaml违反了RFC 6839,因为它没有注册)
  • 如果我想构建一个基于内容类型解码数据的解析器怎么办?我应该为适当的“编码”寻找“子类型”或“后缀”吗?

1 个答案:

答案 0 :(得分:2)

  1. RFC 2616已过时。请查看RFC 7231。

  2. 我不会将html+json用于HTML和JSON的混合;你真的需要将所有标记翻译成JSON(此时你会发现JSON对标记语言不起作用)。

  3. 但是,只要您注册,就可以使用something+json

  4. +yaml不违反RFC 6839;但你需要注册它。

  5. 通用软件可以使用后缀来选择解析器。 XMLHTTPRequest对+xml的支持就是一个例子。

相关问题