假设我从Web浏览器向Web服务器发出了两个请求。在得到第一个请求的响应之前,我正在发送第二个请求。我知道稍后请求的响应已在我的浏览器中呈现。但是,第一反应会如何?浏览器如何知道哪个响应是新的?
浏览器使用HTTP进行通信,并且相关标准定义了请求和响应的传输方式。
对于HTTP / 1,可能是对于新请求,使用了新的TCP连接,在这种情况下,也期望该连接中的响应。或者可能是使用现有的TCP连接来发送请求,在该请求中,来自该连接的所有先前请求的响应都在传入后才被期望(它们具有明确定义的大小,因此响应结束是已知的)。
对于HTTP / 2,这更为复杂,因为多个请求在TCP连接内交错,因此多个响应也是如此。但是HTTP / 2中定义的框架清楚地定义了这些消息帧中的每个消息帧也属于哪个请求/响应,因此它们可以在末尾重新组合,并且可以将响应分配给相关请求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句