问题描述:假如我点开一个index.html,该页面会同时发起两个异步请求,伪代码如下:window.onload = function() { ajax1(); //第一次异步请求 ajax2(); //第二次异步请求}现在假如ajax1()这个请求是在服务器端的处理是十分耗时的,而ajax2()则仅仅是一个简单查询,处理很快。那么现在问题是:1、ajax2()这个请求的响应结果会不会先于ajax1()这个请求先返回到浏览器端?还是这个会跟服务端语言的机制有关?比如java或者nodejs这类。2、一个网络相关的问题:这两个请求会复用一个TCP连接吗。还是分别对服务器建立两个不同的TCP连接。(在HTTP1.1中,可以设置connection: keep-alive)万分感谢解疑~
6 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
HTTP1.1可以TCP复用,第一个请求响应完成后再发送第二个请求就是1个TCP连接,如果是两个请求同时开始,或者第一个请求还未结束就开始第二个请求,就是2个tcp连接.
HTTP/2,客户端向某个域名的服务器请求页面的过程中,只会创建一条TCP连接,即使这页面可能包含上多个资源。即同时请求会使用一个TCP连接。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
1、ajax2()这个请求的响应结果会不会先于ajax1()这个请求先返回到浏览器端?还是这个会跟服务端语言的机制有关?比如java或者nodejs这类。
会。跟语言无关。
2、一个网络相关的问题:这两个请求会复用一个TCP连接吗。还是分别对服务器建立两个不同的TCP连接。(在HTTP1.1中,可以设置connection: keep-alive)
不会。是两个连接。
添加回答
举报
0/150
提交
取消