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

问题描述 投票:0回答:2

两者之间的确切区别是什么

  1. 内容类型:text/json
  2. 内容类型:application/json

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

http header content-type
2个回答
67
投票

application/json
:json 的官方 MIME 类型

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


22
投票

来自Content-Type的定义:

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

  • text
    :文本信息。主要子类型“纯文本”表示纯文本(无格式)。
    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 注册了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

。在他的 
2006 年 1 月第一次选秀中:

5。 IANA 注意事项

JSON 文本的 MIME 媒体类型是

text/json。

在他的

1st2nd3rd修订版中,它仍然是text/json

但是在 2006 年 2 月的

第四次修订中,他将其更改为 application/json

(有拼写错误):

6。 IANA 注意事项

JSON 文本的 MIME 媒体类型是

application/json。

输入名称:

text


子类型名称:
json

当它于 2006 年 7 月被接受为完整的

RFC 时,任何提及 text 的内容都消失了:

6。 IANA 注意事项

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

输入名称:

application


子类型名称:
json

显然从

text/json

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

© www.soinside.com 2019 - 2024. All rights reserved.