2011-12-22 48 views
1

我正在開發一個項目,我將通過HTTP POST將大量二進制數據(一條消息中的多個圖像)發送到RESTful接口。通過HTTP POST對二進制數據進行編碼的最有效方式是什麼

我研究過諸如JSON,protobuff,thrift等替代品,但沒有發現這些格式引入的開銷的決定性比較。在這種情況下你更喜歡使用哪一個?

+0

這也可能是最有效的不編碼它在所有設置相應的Content-Type和Content-Length的頭,然後就發過來的HTTP連接POST的正文。 – 2011-12-22 22:19:28

+0

謝謝。但我也想發送一些元數據,比如API密鑰或類似的。我想用一個標準庫是乾淨的。但是也許你會提出一個簡單的內部格式來解析HTTP POST正文中的字節數組? – hakura 2011-12-22 22:23:29

+0

然後只需使用[multipart/form-data](http://chxo.com/be2/20050724_93bf.html)。 – 2011-12-22 22:32:07

回答

0

如果您確實需要將其作爲單個HTTP POST的一部分來完成,那麼我首先會更關心可靠性和功能。效率將與您發送的內容有關。如果圖像是已經壓縮過的格式/容器,那麼很有可能在不犧牲別的東西的情況下,你不會看到效率有很大的百分比差異。所以在我看來,可能最有效的東西是使用POST中的內容的MIME編碼,這意味着使用Base64編碼二進制文件。使用它你可以獲得這樣的好處:現在幾乎所有的開發平臺都可以擁有內置的這個功能,或者可以很容易地在外部庫中用於MIME/Base64。堅持使用這些高度使用的標準可以很容易地支持廣泛的用戶羣。一些供參考鏈接:

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

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

相關問題