我们目前正在开发一个带有React前端(和快速服务器)和Java后端的应用程序。应用程序必须能够在前端和后端之间发送大量图像和视频。
到目前为止,我们使用fetch(https://github.com/github/fetch)将formData从前端发送到后端,但由于fetch中未实现的formData,这不能用于发送另一种方式(后端到前端)。我们能够以blob形式接收图像,但希望发送包含文件的信息以减少http请求的数量。
有人对我们应该用什么来发送和接收大量图片和视频有任何建议吗?图书馆或建议?
非常感谢!
答案 0 :(得分:1)
我没有看到接收多个请求的数据有任何问题。一个请求发送图像的信息,带有指向图像的链接,然后浏览器发送另一个请求以获取图像。这是我见过的最常见的实现。
向服务器发送多个请求的感知开销实际上并不是问题。现代浏览器不会打开与服务器的多个tcp连接 - 它们会保持连接打开一段时间以允许多个请求,而无需打开新连接的开销。
所有现代网络浏览器都使用持久连接,包括谷歌浏览器,Firefox,Internet Explorer(自4.01),Opera(自4.0)和Safari。 https://en.wikipedia.org/wiki/HTTP_persistent_connection
我假设您尝试使用“formData”向浏览器发送响应的内容是在响应中使用content-type: multipart
。这不是一种常见的做法,浏览器支持looks inconsistent。另外,Is there a de facto or established reason why multipart HTTP responses aren't generally supported in browsers?。
但是,对于您的用例而言,真正有利的是采用HTTP / 2。 HTTP / 2具有更多用于持久连接的功能和具有相同连接的多个响应。
使用新的二进制成帧机制,HTTP / 2不再需要多个TCP连接来并行多路复用流;每个流被分成许多帧,可以交错和优先。因此,所有HTTP / 2连接都是持久的,并且每个源只需要一个连接,这提供了许多性能优势。 https://developers.google.com/web/fundamentals/performance/http2/