HTTP:
1、HTTP1.0:只支持短連接鸟废,所謂短連接就是一次連接只有1次request和1次response
2缩擂、HTTP1.1:加入了頭部Connection:keep-alive胯盯,保證了一次連接能有多次request-response
WebSocket(一種新的協(xié)議:需要客戶(hù)端支持升級(jí)):
可以理解為一種建立在http協(xié)議上的支持長(zhǎng)連接的方案计露,及保證客戶(hù)端和服務(wù)器之間可以建立TCP長(zhǎng)連接票罐,類(lèi)似于Socket的TCP長(zhǎng)連接---但是,webSocket的建立連接是通過(guò)http請(qǐng)求實(shí)現(xiàn)的该押,之后的通信就沒(méi)有http什么事情了蚕礼,而且webSocket是雙向的椭蹄,C/S之間都可以主動(dòng)發(fā)送消息,這也是Push的實(shí)現(xiàn)原理(維持一個(gè)雙向的長(zhǎng)連接)
客戶(hù)端Push:
IOS:系統(tǒng)級(jí)維持一個(gè)長(zhǎng)連接罩润,所有的Push都經(jīng)過(guò)蘋(píng)果服務(wù)器割以,由蘋(píng)果服務(wù)器通過(guò)這條系統(tǒng)級(jí)的連接進(jìn)行Push,整個(gè)系統(tǒng)只維持這一個(gè)長(zhǎng)連接猜极,代價(jià)小
Android:Google也推出類(lèi)似的技術(shù)消玄,但是效果和影響力受到各種因素的影響,并不能想蘋(píng)果一樣做到所有推送消息走統(tǒng)一的長(zhǎng)連接受扳,往往是一個(gè)應(yīng)用維持一個(gè)自己的推送長(zhǎng)連接勘高,代價(jià)非常大坟桅,性能受到限制