json requests 非常大的HTTP请求与许多小请求



nodejs request json (3)

我需要一个2D数组(如Json)从服务器发送到客户端。 它的大小约为400x400,每个条目大约有4个字符的文本。 这样就可以获得大约640KB的数据。

以下哪种极端方法更好?

  1. 我一口气对所有数据发出大量HTTP请求。
  2. 我提出了400个请求 - 每个请求一行(大约1.6 KB)

我认为最佳方法将介于中间。 任何人都可以告诉我这个数据的最佳单一请求大小是什么?

谢谢。



Answer #2

除非您处理缓慢(通过今天的标准非常慢)连接并且确实需要增量更新,否则请在一个请求中执行。

这为您提供了更好的压缩响应效率,并避免了额外的HTTP请求和响应头的开销。


Answer #3

选择一个大与几个小的考虑因素:

  • 在单一请求的情况下,当数据到达时,您无法进行渐进式数据处理; 您需要等待完整的数据包到达才能执行任何操作。 如果它失败了,你需要从头开始一切。
  • 在多个请求的情况下,您可以执行渐进式数据处理。 但是,您现在必须考虑多个故障的可能性以及如何从这些故障中恢复。
  • 多个请求会产生每个请求的开销。 这是您应用程序将消耗的额外带宽。
  • 某些HTTP代理限制了对同一服务器的并发请求数,您可能需要做一些逻辑来解决这个问题。
  • 响应压缩对单个请求案例更有效。
  • 多个请求不需要您为数据分配完整内存。 当然,640KB不是那么大的内存,所以这可能不是你的一个重要考虑因素,这取决于你分配它的频率。
  • 在提前终止流程的情况下(取消按钮或应用程序终止或浏览器导航离开您的页面),单个请求仍将完成完整的响应下载; 但是,对于多个请求的情况,您的代码尚未启动的任何请求都不会被执行。

老实说,我不会那么担心最后两个并且我的选择基于1)是渐进式数据处理重要; 2)您的应用程序容差对于故障和部分数据。