content-type: text/json 和 application/json 之间的确切区别是啥?

Posted

技术标签:

【中文标题】content-type: text/json 和 application/json 之间的确切区别是啥?【英文标题】:What is the exact difference between content-type: text/json and application/json?content-type: text/json 和 application/json 之间的确切区别是什么? 【发布时间】:2014-04-19 19:23:21 【问题描述】:

两者的确切区别是什么

    内容类型:文本/json 内容类型:application/json

我一直在随机使用它们,但在两个 http 标头中都没有发现任何输出差异?

【问题讨论】:

***.com/questions/9664282/… 的可能重复项。 【参考方案1】:

application/json: json 的官方 MIME 类型

text/x-json: 在 application/json 正式注册之前的 json 的实验性(非官方)MIME 类型

【讨论】:

拜托,“MIME 类型”和“媒体类型”已经交替使用了 20 年。类 unix 系统仍然几乎都有一个 /etc/mime.types 文件,我向你保证,这个文件并非专门用于 mailcap。 [需要引用]【参考方案2】:

来自Content-Type:的定义

七个标准的初始预定义内容类型中的两个是:

text:文字信息。主要子类型“plain”表示纯(无格式)文本。 No special software is required to get the full meaning of the text,除了支持指定的字符集。子类型将用于应用软件可以增强文本外观的形式中的丰富文本,但为了获得内容的总体概念,必须不需要此类软件。因此,可能的子类型包括任何可读的文字处理器格式。本文档中定义了一个非常简单且可移植的子类型 Richtext。 application:一些其他类型的数据,typically either uninterpreted binary data 或由基于邮件的应用程序处理的信息。主要子类型“八位字节流”将用于未解释的二进制数据,在这种情况下,最简单的推荐操作是提供将信息写入用户文件。定义了两个额外的子类型“ODA”和“PostScript”,用于在正文中传输 ODA 和 PostScript 文档。 “应用程序”的其他预期用途包括电子表格、基于邮件的调度系统的数据以及“活动”(计算)电子邮件的语言。

(强调我的)

换句话说:

text 如果是可读文本(JSON 是) application 如果它的二进制数据不可读(JSON 不是)

理想情况下是text/json,但Douglas Crockford registered application/json

使用此媒体类型的应用程序:JSON 已用于在使用以下所有编程语言编写的应用程序之间交换数据:ActionScript、C、C#、Clojure、ColdFusion、Common Lisp、E、Erlang、Go、Java、javascript、 Lua、Objective CAML、Perl、php、Python、Rebol、Ruby、Scala 和 Scheme。

那他为什么注册在application而不是正确的text

最初 text/json。在他的first January 2006 draft:

5. IANA 考虑因素

JSON 文本的 MIME 媒体类型是 text/json。

在他的第 1、第 2 和第 3 次修订中,它仍然是 text/json。但在 2006 年 2 月的第 4 次修订中,他将其更改为 application/json(有错别字):

6. IANA 考虑因素

JSON 文本的 MIME 媒体类型是 application/json。

类型名称:text

子类型名称:json

到 2006 年 7 月它被接受为完整的 RFC 时,所有 text 的拼写错误都已消失:

    IANA 注意事项

JSON 文本的 MIME 媒体类型是 application/json。

类型名称:应用程序

子类型名称:json

显然,从 text/json 更改为 application/json 的原因是 IANA 更有可能分发 application/* 而不是 text/* 分配。

【讨论】:

我同意text/json 会是更合乎逻辑(最不令人惊讶)的选择。我在研究 text/jsonnot 注册的 MIME 类型的原因时找到了这个答案,因此感谢您提供历史背景。

以上是关于content-type: text/json 和 application/json 之间的确切区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

swagger参数是json类型的怎么标记哪些是必须的

多行 JSON 卷曲

Solr学习笔记——导入JSON数据

ios json 解析与 afnetworking

PHP是怎么返回json格式的数据

PHP是怎么返回json格式的数据