将数据作为application/octet-stream发送是否比将其作为JSON编码的字节数组发送更有效?

6
我有一个Web应用程序,允许客户端一次请求多个图像缩略图。响应当前以JSON编码的对象列表形式发送,其中每个对象包括(编码的)图像数据。(我使用JSON.NET;看起来它将图像数据编码为base64字符串)。
如果我更改我的应用程序,使图像数据与JSON对象分开发送,作为“二进制”(application/octet-stream)内容,这样会更有效吗?
或者更简单地说,application/octet-stream比base64更紧凑吗?
此外,这与image/jpeg有什么不同?
1个回答

9

好的,application/octet-stream基本上是二进制的,当然比base64更高效。在空间方面高出约30%,并且无需编码/解码。


我想知道使用base64的好处是什么?就我所看到的,它只是为了与旧系统(例如SMTP)兼容/可用而已。 - HieuHT
1
@HieuHT:是的,这意味着消息仅包含常规ASCII字符,因此可以安全地传递而无需担心字符集转换,并且不会被错误地解释为其他内容。请参见https://en.wikipedia.org/wiki/Base64。 - Gary McGill
对于未来的人和@HieuHT,这是为什么在JSON中使用Base64编码二进制数据的答案:https://dev59.com/4cDqa4cB1Zd3GeqPblrJ#67156941 - Arun Gowda

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