2009-08-11 101 views
9

现在常见的知识是将样式表和脚本结合起来以减少HTTP请求。我有2个问题:HTTP请求优化:什么是限制?

  1. 他们有多贵?
  2. 什么时候请求太大,应该拆分?

我无法找到你的所有在线阅读我做了这两个问题,如Yahoo! Best Practices其中规定了许多倍,HTTP请求是昂贵的,但从来没有举为什么或如何。

在此先感谢。

回答

6

甲HTTP请求需要进行(认为,3路握手握手),然后才能处理该HTTP请求时,它自

这包括至少发送SYN消息的延迟中的TCP/IP连接服务器并返回SYN/ACK(然后发送ACK到OPEN套接字)。

因此,假设客户端和服务器之间的延迟是均匀的两种方式和50毫秒,这会导致延迟100毫秒,然后才能发送HTTP请求。然后在开始获取实际请求之前又一个100ms(发送请求,然后服务器回复)。

当然,您还需要考虑到标准Web浏览器会同时限制它正在处理的并发HTTP请求的数量。如果你的请求必须等待,你没有免费握手时间(这么说),因为你需要等待另一个连接完成。服务器也扮演着角色,取决于他们如何服务请求。

+2

添加到此答案,浏览器通常一次只打开有限数量的TCP连接(〜2..4) - 所以如果您有更多的请求比这个数字,他们将排队。 – 2009-08-11 01:49:39

+0

想到补充说,一旦我打后。真的非常重要的细节。 – 2009-08-11 01:58:06

1

对于HTTP请求的价格有多昂贵,我没有答案,但减少客户端和服务器之间的往返时间总是一个好主意。如果你有一个固定数量的数据传输,那么在更少的请求中执行它总是更好。

2
  1. 无论何时提出请求,它都会受到网络可靠性的严酷现实的困扰。从同一地点快速连续发出的两个请求可能采用完全不同的路线,因此每次请求都会增加性能方面的不可预测性。单个合并请求可以帮助减轻这种风险。 @Dan McG写了一个有关TCP握手开销的声音。
  2. HTTP不关心请求 的大小,因为它用作IP(Internet Protocol Suite)堆栈上的应用层协议。那是TCP/IP担心 左右,出版商会关注什么是保持文档/文件的大小尽可能小,并且小到足以使其应用程序具有足够的性能。

希望是有道理的。