Sockets HTTP客户端是否总是在单个TCP连接上等待响应?

Sockets HTTP客户端是否总是在单个TCP连接上等待响应?,sockets,http,tcp,ip,Sockets,Http,Tcp,Ip,这是一个纯粹出于好奇的问题,涉及HTTP和TCP之间边界上的一些微妙问题。我没有具体问题要解决 HTTP请求通过TCP连接完成,单个TCP连接可用于一行中的多个HTTP请求 原则上,这意味着客户机可以在上一个连接的响应到达之前发送一个连接请求 有趣的是,这样的多个请求最终可能位于同一个IP数据包中,理论上,甚至多个响应也可能是事实上的批处理请求 我是在研究基准测试时接触到这个主题的,基准测试包括一个纯文本基准测试,其中10个这样的请求在一个发送操作中批处理在一起,使用wrk工具来完成这一操作 我

这是一个纯粹出于好奇的问题,涉及HTTP和TCP之间边界上的一些微妙问题。我没有具体问题要解决

HTTP请求通过TCP连接完成,单个TCP连接可用于一行中的多个HTTP请求

原则上,这意味着客户机可以在上一个连接的响应到达之前发送一个连接请求

有趣的是,这样的多个请求最终可能位于同一个IP数据包中,理论上,甚至多个响应也可能是事实上的批处理请求

我是在研究基准测试时接触到这个主题的,基准测试包括一个纯文本基准测试,其中10个这样的请求在一个发送操作中批处理在一起,使用wrk工具来完成这一操作

我想知道这是否纯粹是一种人为的黑客行为,或者这是否真的发生了,例如,当浏览器从同一台服务器请求多个资源时


此外,可以使用通用编程语言的HTTP客户端执行此操作,还是必须转到TCP套接字才能获得该行为?

在不等待响应的情况下发送多个HTTP/1.1请求称为

正如你在维基百科上看到的,这项技术很有前途,但由于代理服务器和HOL阻塞等问题,浏览器默认情况下没有启用。尽管如此,在主要的HTTP客户端和服务器中仍然支持它


该技术不适用于更高版本的协议:HTTP/2以一种根本不同的方式使用TCP连接,HTTP/3甚至不使用TCP。

在不等待响应的情况下发送多个HTTP/1.1请求称为

正如你在维基百科上看到的,这项技术很有前途,但由于代理服务器和HOL阻塞等问题,浏览器默认情况下没有启用。尽管如此,在主要的HTTP客户端和服务器中仍然支持它

这种技术不适用于更高版本的协议:HTTP/2以一种根本不同的方式使用TCP连接,HTTP/3甚至不使用TCP