【问题标题】:What is the most efficient way of encoding binary data over HTTP POST通过 HTTP POST 编码二进制数据的最有效方法是什么
【发布时间】:2011-12-22 22:15:53
【问题描述】:

我正在进行一个项目,我将通过 HTTP POST 将大量二进制数据(一条消息中的多个图像)发送到 RESTful 接口。

我研究了 JSON、protobuff、thrift 等替代方案,但没有发现这些格式引入的开销的结论性比较。在这种情况下,您更喜欢使用哪一种?

【问题讨论】:

  • 完全不对其进行编码可能是最有效的,设置适当的 Content-Type 和 Content-Length 标头,然后通过 HTTP 连接将其作为 POST 的正文发送。
  • 谢谢。但我也想用它发送一些元数据,例如 API 密钥或类似的。我认为使用标准库是干净的。但也许您建议提出一种简单的内部格式来解析 HTTP POST 正文中的字节数组?
  • 那就用multipart/form-data吧。

标签: json http post protocol-buffers thrift


【解决方案1】:

如果您确实需要将所有这些作为单个 HTTP POST 的一部分进行,那么我首先会更关心可靠性和功能。效率都将与您发送的内容相关。如果它是已经压缩格式/容器的图像,那么在不牺牲其他东西的情况下,您很可能不会看到效率的良好百分比差异。因此,在我看来,最有效的研究方法可能是在 POST 中对您的内容使用 MIME 编码,这意味着使用 Base64 对二进制文件进行编码。使用这个你有一个好处,现在几乎所有的开发平台要么内置这个功能,要么可以很容易地在外部库中用于执行 MIME / Base64。坚持使用此类高度使用的标准可以轻松支持广泛的用户群。一些参考链接:

http://en.wikipedia.org/wiki/MIME

http://en.wikipedia.org/wiki/Base64

【讨论】:

    猜你喜欢
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2018-09-02
    • 2011-12-13
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多