我用瀏覽器請(qǐng)求,一直是給第一個(gè)進(jìn)程處理,哪怕這個(gè)進(jìn)程阻塞著
postman一直是第二個(gè)進(jìn)程
有設(shè)置調(diào)度的嗎?把新的請(qǐng)求交給空閑進(jìn)程?
因?yàn)闉g覽器(包括postman)會(huì)做優(yōu)化啊,瀏覽器新的請(qǐng)求復(fù)用之前建立的http連接。目的是避免頻繁的tcp連接建立和斷開(kāi),大大提升瀏覽器和服務(wù)端性能
?
如果滿(mǎn)足下面情況就會(huì)復(fù)用連接發(fā)起新的請(qǐng)求,
1、連接沒(méi)有被關(guān)閉
2、連接上沒(méi)有等待響應(yīng)的請(qǐng)求,也就是上一個(gè)請(qǐng)求已經(jīng)收到回復(fù)
?
瀏覽器是不知道你的進(jìn)程發(fā)生了阻塞的,既然這個(gè)連接正常返回了數(shù)據(jù),它認(rèn)為連接對(duì)應(yīng)的進(jìn)程沒(méi)問(wèn)題,那么下次他還會(huì)復(fù)用這個(gè)連接發(fā)起請(qǐng)求。
?
服務(wù)端無(wú)法把請(qǐng)求分配給其它進(jìn)程是因?yàn)楦鶕?jù)操作系統(tǒng)的底層原理,客戶(hù)端發(fā)起的連接不是進(jìn)程間共享的,連接屬于哪個(gè)進(jìn)程那么就只能那個(gè)進(jìn)程處理。如果處理連接的進(jìn)程被你sleep阻塞了,那它自然暫時(shí)無(wú)法處理這個(gè)連接后續(xù)的請(qǐng)求啦,其它進(jìn)程幫不上忙的。
?
我覺(jué)得如果不想他們復(fù)用連接,可以send完數(shù)據(jù)后調(diào)用close關(guān)閉連接