Ajax 从单个浏览器排序HTTP调用

Ajax 从单个浏览器排序HTTP调用,ajax,http,networking,browser,concurrency,Ajax,Http,Networking,Browser,Concurrency,我们的应用程序向单个服务器发送多个重叠的AJAX调用。我想知道是否有保证交货的订单 请注意,与此不同的是,我不是在询问如何序列化客户端中的依赖项。客户端以该顺序发送请求R1、R2、R3,而不等待响应,我询问服务器上的交付顺序(让我们忽略负载平衡) 请求是否以相同的顺序到达 通过HTTP/1.1 通过HTTP/2 据我所知,政府没有做出这样的保证 通常,浏览器倾向于将请求的隐式排序视为一个问题(称为),并试图避免它 在HTTP/1.1中,为了避免行首阻塞,浏览器会打开。如果R1和R2在不同的TC

我们的应用程序向单个服务器发送多个重叠的AJAX调用。我想知道是否有保证交货的订单

请注意,与此不同的是,我不是在询问如何序列化客户端中的依赖项。客户端以该顺序发送请求R1、R2、R3,而不等待响应,我询问服务器上的交付顺序(让我们忽略负载平衡)

请求是否以相同的顺序到达

  • 通过HTTP/1.1
  • 通过HTTP/2
据我所知,政府没有做出这样的保证

通常,浏览器倾向于将请求的隐式排序视为一个问题(称为),并试图避免它

在HTTP/1.1中,为了避免行首阻塞,浏览器会打开。如果R1和R2在不同的TCP连接上发送,则无法保证它们的传递顺序,因为它们都可能受到任意网络延迟的影响

使用HTTP/2,浏览器可以打开,这意味着请求将按照浏览器发送的相同顺序到达服务器。因此,排序可能在HTTP/2中实际有效。(显然,即使是这样,服务器也只能解析这些请求并开始为它们提供服务。例如,如果您的HTTP/2连接被nginx终止,它将尽快从一个连接向多个工作者发送请求。换句话说,可能很难“忽略负载平衡”在实践中。)


但是,同样,这被视为HTTP/2的一个问题,并且正在以的形式开发一个解决方案,它是基于UDP的,因此在多路连接之间再次失去顺序。

我明白了,我太天真了。回答得很好。