Base64 和 Multipart 有什么区别?

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

谁能解释一下

Base64
的优点是什么
Multipart

我知道 Multipart 比它更快

Base64
...

但是仍然有很多开发人员在使用 Base64...我研究了两个文档,但我不清楚

android base64 multipart
3个回答
45
投票

Base64
Base64 是一种通过将二进制数据转换为 radix-64 表示形式将二进制数据编码为 ASCII 字符格式的方法。
我建议您永远不要使用 Base64 将大型文件/数据上传到服务器,因为它会转换整个数据并将其发布到服务器。

多部分
多部分是一种以字节为单位的部分形式将文件/数据上传到服务器的方法。 Multipart/form-data 应用于表单,以便您可以以多部分表单发送所有内容,也包括“常规”数据。


7
投票

Multipart 是 http 协议的一部分。参见

https://stackoverflow.com/a/19712083/5694629

Base64 是一种将任意内容转换为可序列化形式进行传输的方法。


0
投票

Base64 编码: Base64 编码是一种以 ASCII 文本格式表示二进制数据的方法。它采用有限的字符集(如 A-Z、a-z、0-9、+、/)和填充字符(如“=”)将二进制数据转换为基于文本的格式。

优点:

  • 适合在基于文本的格式中嵌入二进制数据,例如 JSON 或 XML。
  • List item 保证二进制数据可以安全传输 可能无法很好地处理二进制数据的上下文。

缺点:

  • 将数据大小增加约 33%,因为二进制数据表示为文本
  • 由于以下原因,对于非常大的文件可能不是最有效的选择 增加数据大小。

当您需要在基于结构化文本的文档中包含二进制数据(例如在 JSON 负载中嵌入图像或其他二进制资源)时,Base64 编码非常有用。

分段文件上传:

分段文件上传是在 HTTP 请求中发送二进制文件的标准方法。它对 HTTP POST 请求使用“multipart/form-data”内容类型。在此方法中,二进制文件作为部分直接包含在请求正文中,您可以添加元数据,例如文件名和内容类型

- 优点:

  • 对于上传大型二进制文件非常有效,因为它不会增加数据大小。
  • 支持在单个请求中发送多个文件。
  • 提供包含有关上传文件的元数据的灵活性。

缺点:

  • 需要额外的 HTTP 标头和更复杂的请求结构 与 Base64 编码相比。

  • 将二进制数据嵌入结构化数据可能并不那么简单 基于文本的格式,例如 JSON。

当您需要高效传输二进制文件(尤其是大文件)并需要有关这些文件的元数据时,分段文件上传是首选。常用于用户通过Web表单上传图片、文档或其他文件的场景。

当您需要高效传输二进制文件(尤其是大文件)并需要有关这些文件的元数据时,分段文件上传是首选。常用于用户通过Web表单上传图片、文档或其他文件的场景。

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