在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  Java  HTML/ 一個頁面同時發(fā)起兩個http請求相關(guān)問題

一個頁面同時發(fā)起兩個http請求相關(guān)問題

問題描述:
假如我點開一個index.html,該頁面會同時發(fā)起兩個異步請求,偽代碼如下:

window.onload = function() {
  ajax1(); //第一次異步請求
  ajax2(); //第二次異步請求
}

現(xiàn)在假如ajax1()這個請求是在服務(wù)器端的處理是十分耗時的,而ajax2()則僅僅是一個簡單查詢,處理很快。
那么現(xiàn)在問題是:
1、ajax2()這個請求的響應(yīng)結(jié)果會不會先于ajax1()這個請求先返回到瀏覽器端?還是這個會跟服務(wù)端語言的機(jī)制有關(guān)?比如java或者nodejs這類。
2、一個網(wǎng)絡(luò)相關(guān)的問題:這兩個請求會復(fù)用一個TCP連接嗎。還是分別對服務(wù)器建立兩個不同的TCP連接。(在HTTP1.1中,可以設(shè)置connection: keep-alive)

萬分感謝解疑~

回答
編輯回答
互擼娃
1、ajax2()這個請求的響應(yīng)結(jié)果會不會先于ajax1()這個請求先返回到瀏覽器端?還是這個會跟服務(wù)端語言的機(jī)制有關(guān)?比如java或者nodejs這類。

會。跟語言無關(guān)。

2、一個網(wǎng)絡(luò)相關(guān)的問題:這兩個請求會復(fù)用一個TCP連接嗎。還是分別對服務(wù)器建立兩個不同的TCP連接。(在HTTP1.1中,可以設(shè)置connection: keep-alive)

不會。是兩個連接。

2018年4月22日 02:04
編輯回答
爆扎
  1. ajax2很可能會比ajax1先獲得反饋,但這個和服務(wù)器的語言機(jī)制沒有絕對的關(guān)系,僅僅是服務(wù)器端處理速度(當(dāng)然,如果是同一個服務(wù)器資源,可能存在不同語言實現(xiàn)效率的差異)
  2. 這個要看瀏覽器的實現(xiàn)和服務(wù)器端的實現(xiàn)。
2018年9月15日 23:30
編輯回答
未命名
  1. 哪個先返回取決于服務(wù)器端哪個先處理完先返回
  2. 連接復(fù)用是指這個http請求完成后,TCP連接在一定時間內(nèi)不關(guān)閉;新的請求可以復(fù)用這個沒有關(guān)閉的連接
2017年2月28日 00:24
編輯回答
青黛色
  1. 市面上出現(xiàn)的WEB服務(wù)器中,2比1先返回
  2. 先來看看HTTP請求復(fù)用
定義

Http/1.0每次請求都需要建立新的TCP連接,連接不能復(fù)用。Http/1.1新的請求可以在上次建立的tcp連接之上發(fā)送,連接可以復(fù)用。

優(yōu)點

減少重復(fù)進(jìn)行tcp三次握手的開銷,提高效率。注意:在同一個tcp連接中,新的請求需要等上次請求收到響應(yīng)后,才能發(fā)送。

csdn博客

而1是沒收到響應(yīng)的,所以本例中2不會復(fù)用1的TCP連接。

2017年4月21日 11:26
編輯回答
練命

ajax1 和 ajax2 返回的的順序不是固定的,有兩個請求,誰先處理完就誰先返回。

keep alive 是長鏈接,它省的是 dns 查詢和建立 tcp 連接的時間。從你的闡述來看,滿足你需求的是 http2 的多路復(fù)用

2017年10月15日 02:27
編輯回答
練命

HTTP1.1可以TCP復(fù)用,第一個請求響應(yīng)完成后再發(fā)送第二個請求就是1個TCP連接,如果是兩個請求同時開始,或者第一個請求還未結(jié)束就開始第二個請求,就是2個tcp連接.
HTTP/2,客戶端向某個域名的服務(wù)器請求頁面的過程中,只會創(chuàng)建一條TCP連接,即使這頁面可能包含上多個資源。即同時請求會使用一個TCP連接。

2017年3月6日 12:15