用于将二进制数据上载到jax-rs(REST)服务的最佳性能协议

时间:2012-06-30 13:00:20

标签: java javascript json jax-rs

环境

我的应用程序(war)有一个JavaScript前端和一个Java REST服务。

要上传的文件将在前端生成,但不会直接由用户交互生成 - 这是用户自己上传文件的用例。因此,有必要从JavaScript代码启动上传。

我需要能够在上传时发送关于二进制数据的元数据(由应用程序的其他部分生成) - 这就是为什么我需要某种协议而不是仅仅上传文件。

问题

我无法确定的是上传文件的最佳做法,主要是关于所使用的协议。

我遇到过以下协议:

  • JS​​ON
  • XML
  • proctol-buffers(通过protobuf.js

然而,像往常一样,互联网有很多不同的信息,但没有给我一个连贯的图片:

  • 关于可靠性,互联网似乎表示您最好使用multipart/mixed类型来传输数据,而不是纯application/octet-stream类型。
  • json本身并不支持二进制数据,显然,Base64具有很高的处理开销。
  • 这是一个JavaScript前端,所以json会更受欢迎。
  • 当然,我可以使用protobuf.js,但我宁愿使用前沿技术而不是前沿技术。

我的优先事项是:

  • 文件的可靠数据传输,介于1到10兆字节之间。
  • 高效且高效的数据传输。
  • 可读代码/架构

简而言之,上面提到的3种格式中哪一种最适合这些要求,因为我在后端使用Java REST服务?

(如果我正在使用Java REST服务 - 而不是说,一个servlet - 来上传文件将是最大的减速,这也是一个很好的答案!)

编辑:评论中提供的补充信息 - 谢谢!

0 个答案:

没有答案