我希望我的移动应用程序能够将图像上传到我的服务器,在我的情况下,它是带有nginx的Rails 3.2.11。
我在客户端阅读了很多关于Base64编码然后在服务器端解码的信息。
为什么不在http 请求上使用带有多部分标头的二进制上传?
每种技术都有哪些优点/缺点?
我希望我的移动应用程序能够将图像上传到我的服务器,在我的情况下,它是带有nginx的Rails 3.2.11。
我在客户端阅读了很多关于Base64编码然后在服务器端解码的信息。
为什么不在http 请求上使用带有多部分标头的二进制上传?
每种技术都有哪些优点/缺点?
Base64 将您的数据转换为二进制数据的 ASCII 表示。它允许您将数据嵌入到文本流中,例如 JSON。Base64 将传输的数据大小增加了 33%。
multipart/form-data
是在 HTTP 请求中传输二进制数据的标准方式。它允许您为要传输的每个部分使用特定的编码/内容类型。在我看来,除非您有特定要求或设备/SDK 功能,否则您应该坚持分段上传。
“为什么不在 http 请求上使用带有多部分标头的二进制上传?” 确实为什么不;)
Base64 图像表示可以直接放在 html 中以呈现图像。
二进制占用更少的空间。并受益于更大的网络效应和标准化。例如,如果您想使用亚马逊简单安全存储 S3,您必须存储一个二进制文件。您不能存储需要键/值存储的字符串,例如 redis。