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