【问题标题】:Multiple HTTP GET requests in one TCP/IP connection - processed parallel or sequential一个 TCP/IP 连接中的多个 HTTP GET 请求 - 并行或顺序处理
【发布时间】:2011-04-21 16:38:12
【问题描述】:

我们收到很多 googlebot 请求。

googlebot 通过11 个 HTTP GET 请求最多请求 11 个不同的文件,所有这些都在一个 TCP/IP 连接中。

这些 GET 请求(都在同一个 TCP/IP 连接中)是否通过服务器处理

  • 并行
  • 还是按顺序?

还是服务器上的?

  • 在这种情况下,nginx如何处理?

感谢您的帮助

【问题讨论】:

    标签: http nginx tcp


    【解决方案1】:

    HTTP 流水线是按顺序进行的。 HTTP 中不支持任何类型的交错。

    但是,通过流水线,服务器可能在服务完最后一个请求之前就知道所有请求。理论上,它可以并行执行必要的 I/O。

    不过,看起来 nginx 不会这样做。

    【讨论】:

    • 我已经用 Apache Web 服务器运行了几个测试,并且可以确认它实际上是连续的 - 早期的慢请求会延迟处理后续更快的请求。
    【解决方案2】:

    这些是 GET 请求吗(都在同一个 TCP/IP 连接)通过 服务器在

    并行还是顺序?

    按顺序处理。它被称为流水线。流水线是 HTTP/1.1 的一部分,这意味着客户端不需要等待当前请求 在通过持久连接发送下一个请求之前完成。它可以通过同一连接发送多个请求,而无需等待先前请求的响应。请求以 FIFO 方式处理,即客户端可以按顺序发送多个请求,并且服务器应该按照接收请求的顺序对每个请求发送响应。因此,如果您使用的服务器符合 HTTP/1.1,则应按顺序处理。

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 1970-01-01
      • 2011-04-24
      • 2017-12-05
      • 2013-06-12
      • 2011-08-05
      • 2011-07-27
      • 2015-10-27
      • 1970-01-01
      相关资源
      最近更新 更多