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

时间:2010-06-29 07:01:02

标签: json client-server

  

可能重复:
  Very large HTTP request vs many small requests

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

以下哪种极端方法更好?

  1. 我一次性对所有数据发出大量HTTP请求。
  2. 我发出400个请求 - 每个请求一行(大约1.6 KB)
  3. 我认为最佳方法可能介于中间。任何人都可以告诉我这个数据的最佳单一请求大小。

    谢谢,

4 个答案:

答案 0 :(得分:7)

在提出请求时,您始终必须处理一些开销(如DNS请求,打开连接并关闭它)。因此,提出一个大请求可能更明智。

如果有一个大请求,你可能会遇到更好的gzip / deflate压缩。

答案 1 :(得分:4)

取决于您希望实现的应用程序和效果。以下是两种情况:

  • 如果你正在处理一个GUI,那么或许chunking是一个好主意,一个小块会更新视觉效果,给人类带来“速度”的幻觉。在这里,您希望按照gui更新要求逻辑分块数据。您可以应用相同的概念来确定任何其他伪实时场景的优先级。

  • 另一方面,如果你只是转储这些数据,那么就不要使用块,因为100个6字节的请求总体上要比1 600字节的请求更耗时。

然而,一般而言,网络数据包传输(TCP)分块和传递比在应用程序传输层(HTTP)上提供的任何内容都更加优化。多个请求/块表示多个片段。

尝试使用应用层协议进行传输层优化通常是徒劳的。而且,恕我直言,它挫败了两者的目的: - )

如果您因任何原因有实时要求,那么您应该控制传输本身并在那里进行优化(但似乎并非如此)。

快乐编码

答案 2 :(得分:3)

绝对有1个请求,如果在服务器上启用gzip压缩,则不会发送任何接近640KB的内容

所有页面速度优化工具(例如yslowgoogle page speed等)建议减少加快页面加载时间的请求数量。

答案 3 :(得分:-3)

少量的HTTP请求会更好,因此请提出一个请求。