使用application / json优于text / plain的优势?
使用内容类型application /
json通过文本/纯文本发送序列化为json的对象有什么性能优势?我知道许多框架(例如Spring)都可以根据内容类型映射和序列化数据,但是总的来说,我发现此过程非常简单,因此对于在JSON对象上使用application
/ json而不是text / plain的应用,这并不是一个令人信服的理由。 。
回答:
假设您正在谈论使用JSON与自定义格式(使用MIME type text/plain
)传递结构化数据。
性能可以分解为不同的组成部分;例如
- 将内容编码为格式所需的相对时间,
- 解码格式以获取原始内容所需的相对时间,以及
- 编码内容的相对大小。
从理论上讲,我们可以说,一种假设性的最佳设计和实现的自定义格式不会比JSON慢或少。(“证明”是显而易见的。选择JSON的最佳实现,并对格式进行一些小的更改,而这不会影响性能。)
但实际上,您必须比较实际格式和实际实现的性能。因此,性能的答案实际上取决于您在设计和实现格式及其相关的编码/解码软件方面做得如何。此外,这还取决于您如何实现JSON。有许多具有不同性能特征的服务器端JSON库,以及从/到“本地”数据结构映射数据的不同方法。
这使我们获得了JSON(和XML)优于自定义格式的真正优势。
使用JSON和XML,您可以选择任何主流语言来使用库来帮助编码和解码内容。使用自定义格式,您必须为客户端和服务器端滚动自己的编码/解码。
使用JSON和XML,有一些标准说明了格式正确的标准,允许其他人实现编码器/解码器。对于自定义格式,如果希望其他人能够实现您的格式,则必须自己编写规范。
JSON和XML具有处理诸如字符集编码和数据中出现的“元”字符之类问题的标准方法。使用风俗习惯,您必须自己了解并解决这些问题。(如果您不这样做,很可能会遇到麻烦。)
易于更改。演化基于JSON / XML的格式是相对简单的事情。但是使用自定义格式,您(至少)需要做更多的工作,并且根据您的设计选择,这可能非常困难。
对于大多数应用程序而言, 这些问题比性能影响更大 。这就是为什么JSON或XML被广泛使用的原因。
但是,如果相反,您假设我没有使用自定义实现,而是比较发送带有MIME类型的文本/纯文本的JSON与发送MIME类型的application /
json的JSON,该怎么办?
答案是 性能 差异。
- 您可以在HTTP请求或响应标头中保存6个字节,因为mime类型字符串较短,但是对于大小以千字节为单位的典型HTTP消息而言,这并不重要。
- 使用“文本/纯文本”内容类型与对请求或响应消息进行编码/解码所需的工作没有区别……除了比较/复制6个额外字节所花费的时间外,这可能太小了测量。
另外,使用不正确的MIME类型(可以说)违反了HTTP规范。如果您这样做:
接收者处理响应的可能性更大;例如无法解码,或在浏览器窗口中显示它,以及
如果您的客户端或服务器使用HTTP内容类型协商,则可能会中断它。
简而言之,我认为没有 充分的 理由这样做,还有一些没有这样做的 充分 理由。
以上是 使用application / json优于text / plain的优势? 的全部内容, 来源链接: utcz.com/qa/432559.html