2011-12-22 5 views
1

私は、HTTP POSTを介してRESTfulインターフェイスに多くのバイナリデータ(1つのメッセージに複数の画像)を送信するプロジェクトに取り組んでいます。HTTP POSTを介してバイナリデータをエンコードする最も効率的な方法は何ですか

私はJSON、protobuff、thriftなどの代替案を検討しましたが、これらの形式で導入されたオーバーヘッドの決定的な比較は見つかりませんでした。この場合、どちらを使いたいですか?

+0

それがすべてでそれをエンコードしないように、おそらく最も効率的だが、適切なContent-TypeとContent-Lengthヘッダーを設定して、同じようにHTTP接続を介してそれを送信しますPOSTのボディ。 –

+0

ありがとうございます。しかし、私はまたAPIキーなどのようないくつかのメタデータをメタデータとともに送信したいと思っています。私は標準的なライブラリを使用してきれいだと思った。しかし、おそらくあなたはHTTP POSTの本体からバイト配列を解析するための簡単な内部形式を考え出すことをお勧めしますか? – hakura

+0

それから、[multipart/form-data](http://chxo.com/be2/20050724_93bf.html)を使用してください。 –

答えて

0

本当にすべてを単一のHTTP POSTの一部として実行する必要がある場合は、最初に信頼性と機能性をより重視する必要があります。効率性はすべてあなたが送信しているものに相対的なものになります。すでに圧縮された形式/コンテナのイメージの場合は、他の何かを犠牲にすることなく、効率の良いパーセンテージの差異が見られない可能性が非常に高いです。だから私の意見では、おそらく最も効果的なのは、Base64を使ってバイナリをエンコーディングすることを意味するPOSTであなたのコンテンツのMIMEエンコーディングを使うことでしょう。これを使うことで、ほとんどの開発プラットフォームでは、この機能が組み込まれているか、MIME/Base64を実行するための外部ライブラリで簡単に利用できるという利点があります。このような高度に使用された標準を採用することで、幅広いユーザーベースを簡単にサポートできます。参照のためにいくつかのリンク:

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

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

関連する問題