什么导致超过200ms等待http响应?

时间:2009-08-11 13:28:53

标签: http

Firebug不仅显示单个请求所需的时间,还将其分为几个阶段。获取小文件(约20KB)所花费的大部分时间用于等待响应(至少根据Firebug)。

例如,在stackoverflow上,等待响应开启/需要255毫秒,传输42毫秒。在其他网站上,我看到过这样的数字:200毫秒响应等待和1毫秒传输。造成等待的原因是什么?

网站通常由许多文件组成:html文档,css,js,一些图像。在这里进行任何演示,dojox gfx demos,大部分时间花在转移微小的js文件之间。整个模型对我来说非常低效。

5 个答案:

答案 0 :(得分:3)

在收到回复之前,必须进行以下操作:

  1. 您的数据包遍历野外互联网到服务器。
  2. 服务器必须处理请求并找出它所属的网站,虚拟目录。
  3. Web服务器必须从磁盘中提取文件。如果它是一个动态文件,它必须通过解释器/执行引擎/运行它(通常在服务器开始响应之前必须完全处理文件)。
  4. 服务器必须开始响应,并且数据包必须遍历intertrons回到客户端。
  5. 如果您将50毫秒视为ping时间,则200ms的响应时间将使服务器完成所有其他操作所需的时间为150毫秒...不是非常快,但是可敬。

答案 1 :(得分:2)

等待时间是由在服务器端处理您的请求(浏览问题数据库,创建结果页面等)以及网络延迟(ping时间)引起的

答案 2 :(得分:1)

只是网络“滞后”(滥用这个词) - 你在ping看到的时间 - 可能大约是50到100毫秒,而且服务器需要一定的时间才能到达解析请求,从磁盘检索文件,记录请求,可能从数据库读取,等等。

简短的回答是:服务器需要时间来做事。

答案 3 :(得分:1)

200ms让我想起Nagle's algorithm。简而言之,许多操作系统将延迟发送第一个TCP数据包200ms,以查看是否需要发送更多数据。我不确定它是否适用于现代网络环境。 HTTP请求足够小,可能会因为唠叨而延迟,但您希望操作系统足够智能,或者至少浏览器会禁止对请求进行唠叨。

如果您运行数据包嗅探器并检查跟踪的时间戳,您可以精确计算200ms的运行时间。

答案 4 :(得分:0)

DNS解析?尝试更改您的DNS,然后重复测试