一个TCP/IP连接中的多个HTTP GET请求-并行或顺序处理

一个TCP/IP连接中的多个HTTP GET请求-并行或顺序处理,http,nginx,tcp,Http,Nginx,Tcp,我们收到很多谷歌机器人的请求 googlebot通过11 HTTP GET请求请求多达11个不同的文件,所有这些文件都在一个TCP/IP连接中 这些GET请求(都在相同的TCP/IP连接中)是否通过中的服务器处理 平行的 还是按顺序 或者是服务器上的问题 在这种情况下,nginx如何处理这个问题 感谢您的帮助HTTP管道按顺序进行。HTTP中不支持任何类型的交织 然而,使用管道,服务器可能在完成最后一个请求的服务之前就知道所有请求。理论上,它可以并行执行必要的I/O 不过,nginx看起

我们收到很多谷歌机器人的请求

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

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

  • 平行的
  • 还是按顺序
或者是服务器上的问题

  • 在这种情况下,nginx如何处理这个问题

感谢您的帮助

HTTP管道按顺序进行。HTTP中不支持任何类型的交织

然而,使用管道,服务器可能在完成最后一个请求的服务之前就知道所有请求。理论上,它可以并行执行必要的I/O

不过,nginx看起来不会这么做

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

平行还是顺序

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

我已经使用Apache web server运行了几个测试,可以确认它实际上是按顺序进行的-早期的慢速请求将延迟后续快速请求的处理。