为了账号安全,请及时绑定邮箱和手机立即绑定

一个页面同时发起两个http请求相关问题

一个页面同时发起两个http请求相关问题

沧海一幻觉 2019-03-06 15:15:22
问题描述:假如我点开一个index.html,该页面会同时发起两个异步请求,伪代码如下:window.onload = function() {  ajax1(); //第一次异步请求  ajax2(); //第二次异步请求}现在假如ajax1()这个请求是在服务器端的处理是十分耗时的,而ajax2()则仅仅是一个简单查询,处理很快。那么现在问题是:1、ajax2()这个请求的响应结果会不会先于ajax1()这个请求先返回到浏览器端?还是这个会跟服务端语言的机制有关?比如java或者nodejs这类。2、一个网络相关的问题:这两个请求会复用一个TCP连接吗。还是分别对服务器建立两个不同的TCP连接。(在HTTP1.1中,可以设置connection: keep-alive)万分感谢解疑~
查看完整描述

6 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

  1. 哪个先返回取决于服务器端哪个先处理完先返回

  2. 连接复用是指这个http请求完成后,TCP连接在一定时间内不关闭;新的请求可以复用这个没有关闭的连接


查看完整回答
反对 回复 2019-03-14
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

  1. 市面上出现的WEB服务器中,2比1先返回

  2. 先来看看HTTP请求复用

定义

Http/1.0每次请求都需要建立新的TCP连接,连接不能复用。Http/1.1新的请求可以在上次建立的tcp连接之上发送,连接可以复用。

优点

减少重复进行tcp三次握手的开销,提高效率。注意:在同一个tcp连接中,新的请求需要等上次请求收到响应后,才能发送。

csdn博客

而1是没收到响应的,所以本例中2不会复用1的TCP连接。


查看完整回答
反对 回复 2019-03-14
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

HTTP1.1可以TCP复用,第一个请求响应完成后再发送第二个请求就是1个TCP连接,如果是两个请求同时开始,或者第一个请求还未结束就开始第二个请求,就是2个tcp连接.
HTTP/2,客户端向某个域名的服务器请求页面的过程中,只会创建一条TCP连接,即使这页面可能包含上多个资源。即同时请求会使用一个TCP连接。

查看完整回答
反对 回复 2019-03-14
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

1、ajax2()这个请求的响应结果会不会先于ajax1()这个请求先返回到浏览器端?还是这个会跟服务端语言的机制有关?比如java或者nodejs这类。

会。跟语言无关。

2、一个网络相关的问题:这两个请求会复用一个TCP连接吗。还是分别对服务器建立两个不同的TCP连接。(在HTTP1.1中,可以设置connection: keep-alive)

不会。是两个连接。


查看完整回答
反对 回复 2019-03-14
  • 6 回答
  • 0 关注
  • 1885 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信