假设我的浏览器将一个HTTP请求发布到一个域,在此请求完成之前,另一个不同的请求(通过ajax)被发送到了相同的域。由于第一个请求仍在进行中且尚未终止,这是否意味着第二个请求将必须等待第一个请求完成才能使用第一个请求使用的持久连接?如果是的话,如何预防呢?如果第一个请求中的流连接很长,那是否意味着第二个请求将需要长时间徘徊?
(让我们假设浏览器的最大持久连接数是一个。实际上我并不真正理解“最大持久连接数”的作用。这是否意味着当持久连接超过最大数量时,其余连接将变为非持久性连接。 ?令人困惑...)
谁能解释一下?
由于第一个请求仍在进行中且尚未终止,这是否意味着第二个请求将必须等待第一个请求完成才能使用第一个请求使用的持久连接?
否。这两个请求仍然是异步且并行的(除非服务器对此进行了限制)。
HTTP保持活动状态仅表示它们速度更快,因为两个请求都可以使用相同的连接,尤其是在对它们进行管道传输时。
但是,如果没有流水线,浏览器还可以决定为第二个请求打开第二个连接,而不是等待第一个请求完成并重新使用其连接。请参阅在什么情况下我的浏览器将尝试对多个请求重新使用TCP连接?有关详细信息。
我不太了解这种“最大持久连接”的作用。这是否意味着当持久连接超过最大数目时,其余连接将变为非持久连接?
不会。达到限制后,新请求将必须等待,直到池中的连接再次可用为止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句