http與websocket的區(qū)別與原理

WebSocket和HTTP的區(qū)別

http協(xié)議是用在應(yīng)用層的協(xié)議阐枣,他是基于tcp協(xié)議的畴蒲,http協(xié)議建立鏈接也必須要有三次握手才能發(fā)送信息伞辛。

http鏈接分為短鏈接,長(zhǎng)鏈接蜒简,短鏈接是每次請(qǐng)求都要三次握手才能發(fā)送自己的信息。即每一個(gè)request對(duì)應(yīng)一個(gè)response漩仙。長(zhǎng)鏈接是在一定的期限內(nèi)保持鏈接搓茬。保持TCP連接不斷開《铀客戶端與服務(wù)器通信卷仑,必須要有客戶端發(fā)起然后服務(wù)器返回結(jié)果◆镎郏客戶端是主動(dòng)的锡凝,服務(wù)器是被動(dòng)的。

WebSocket他是為了解決客戶端發(fā)起多個(gè)http請(qǐng)求到服務(wù)器資源瀏覽器必須要經(jīng)過長(zhǎng)時(shí)間的輪訓(xùn)問題而生的垢啼,他實(shí)現(xiàn)了多路復(fù)用窜锯,他是全雙工通信。在webSocket協(xié)議下客服端和瀏覽器可以同時(shí)發(fā)送信息芭析。

建立了WenSocket之后服務(wù)器不必在瀏覽器發(fā)送request請(qǐng)求之后才能發(fā)送信息到瀏覽器锚扎。這時(shí)的服務(wù)器已有主動(dòng)權(quán)想什么時(shí)候發(fā)就可以發(fā)送信息到服務(wù)器。而且信息當(dāng)中不必在帶有head的部分信息了與http的長(zhǎng)鏈接通信來說馁启,這種方式驾孔,不僅能降低服務(wù)器的壓力。而且信息當(dāng)中也減少了部分多余的信息惯疙。

HTTP的長(zhǎng)連接與websocket的持久連接

HTTP1.1的連接默認(rèn)使用長(zhǎng)連接(persistent connection)翠勉,即在一定的期限內(nèi)保持鏈接,客戶端會(huì)需要在短時(shí)間內(nèi)向服務(wù)端請(qǐng)求大量的資源螟碎,保持TCP連接不斷開眉菱。客戶端與服務(wù)器通信掉分,必須要有客戶端發(fā)起然后服務(wù)器返回結(jié)果俭缓。客戶端是主動(dòng)的酥郭,服務(wù)器是被動(dòng)的华坦。在一個(gè)TCP連接上可以傳輸多個(gè)Request/Response消息對(duì),所以本質(zhì)上還是Request/Response消息對(duì)不从,仍然會(huì)造成資源的浪費(fèi)惜姐、實(shí)時(shí)性不強(qiáng)等問題。如果不是持續(xù)連接,即短連接歹袁,那么每個(gè)資源都要建立一個(gè)新的連接坷衍,HTTP底層使用的是TCP,那么每次都要使用三次握手建立TCP連接条舔,即每一個(gè)request對(duì)應(yīng)一個(gè)response枫耳,將造成極大的資源浪費(fèi)。
長(zhǎng)輪詢孟抗,即客戶端發(fā)送一個(gè)超時(shí)時(shí)間很長(zhǎng)的Request迁杨,服務(wù)器hold住這個(gè)連接,在有新數(shù)據(jù)到達(dá)時(shí)返回Response

websocket的持久連接

只需建立一次Request/Response消息對(duì)凄硼,之后都是TCP連接铅协,避免了需要多次建立Request/Response消息對(duì)而產(chǎn)生的冗余頭部信息。

WebSocket原理

WebSocket協(xié)議是html5的一種通信協(xié)議摊沉,該協(xié)議兼容我們常用的瀏覽器狐史。例如Chrome、 Firefox坯钦、IE等预皇。它可以使客戶端和服務(wù)端雙向數(shù)據(jù)傳輸更加簡(jiǎn)單快捷,并且在TCP連接進(jìn)行一次握手后婉刀,就可以持久性聯(lián)接吟温,同時(shí)允許服務(wù)端對(duì)客戶端推送數(shù)據(jù)。外加傳統(tǒng)模式的協(xié)議一般HTTP請(qǐng)求可能會(huì)包含較長(zhǎng)的頭部突颊,但真正有效的可能只有小部分鲁豪,從而就占用了很多資源和帶寬。因此WebSocket協(xié)議不僅可以實(shí)時(shí)通訊律秃,支持?jǐn)U展爬橡;也可以壓縮節(jié)省服務(wù)器資源和帶寬。 WS協(xié)議和WSS協(xié)議兩個(gè)均是WebSocket協(xié)議的SCHEM棒动,兩者一個(gè)是非安全的糙申,一個(gè)是安全的。也是統(tǒng)一的資源標(biāo)志符船惨。就好比HTTP協(xié)議和HTTPS協(xié)議的差別柜裸。非安全的沒有證書,安全的需要SSL證書粱锐。(SSL是Netscape所研發(fā)疙挺,用來保障網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)陌踩裕饕沁\(yùn)用數(shù)據(jù)加密的技術(shù)怜浅,能夠避免數(shù)據(jù)在傳輸過程被不被竊取或者監(jiān)聽铐然。)其中WSS表示在TLS之上的WebSocket。WS一般默認(rèn)是80端口,而WSS默認(rèn)是443端口搀暑,大多數(shù)網(wǎng)站用的就是80和433端口沥阳。(在高防防護(hù)過程中,80和433端口的網(wǎng)站是需要備案才可以接入國(guó)內(nèi)的险掀。)當(dāng)然網(wǎng)站也會(huì)有別的端口沪袭,這種如果做高防是方案是可以用海外高防的。WS和WSS的體現(xiàn)形式分別是TCP+WS AS WS 樟氢,TCP+TLS+WS AS WS。服務(wù)器網(wǎng)址就是 URL侠鳄。最后墨者安全再說下WebSocket協(xié)議的特點(diǎn):建立在 TCP 協(xié)議之上埠啃,服務(wù)端實(shí)現(xiàn)容易;與 HTTP 協(xié)議有良好的兼容性伟恶,握手時(shí)不容易被屏蔽碴开,可以通過各種 HTTP 代理服務(wù)器;數(shù)據(jù)輕量博秫,實(shí)時(shí)通訊潦牛;可以發(fā)送文本和二進(jìn)制數(shù)據(jù)。不限制同源挡育,客戶端可以與任意服務(wù)器端進(jìn)行通訊巴碗。因此WebSocket協(xié)議的出現(xiàn),為很多人解決了關(guān)于擴(kuò)展以及兼容性協(xié)議的煩惱問題即寒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末橡淆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子母赵,更是在濱河造成了極大的恐慌逸爵,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凹嘲,死亡現(xiàn)場(chǎng)離奇詭異师倔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)周蹭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門趋艘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谷醉,你說我怎么就攤上這事致稀。” “怎么了俱尼?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵抖单,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)矛绘,這世上最難降的妖魔是什么耍休? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮货矮,結(jié)果婚禮上羊精,老公的妹妹穿的比我還像新娘。我一直安慰自己囚玫,他們只是感情好喧锦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抓督,像睡著了一般燃少。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铃在,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天阵具,我揣著相機(jī)與錄音,去河邊找鬼定铜。 笑死阳液,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的揣炕。 我是一名探鬼主播帘皿,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼祝沸!你這毒婦竟也來了矮烹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤罩锐,失蹤者是張志新(化名)和其女友劉穎奉狈,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩惑,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仁期,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了竭恬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跛蛋。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖痊硕,靈堂內(nèi)的尸體忽然破棺而出赊级,到底是詐尸還是另有隱情,我是刑警寧澤岔绸,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布理逊,位于F島的核電站橡伞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晋被。R本人自食惡果不足惜兑徘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望羡洛。 院中可真熱鬧挂脑,春花似錦、人聲如沸欲侮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽威蕉。三九已至镀脂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忘伞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工沙兰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氓奈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓鼎天,卻偏偏與公主長(zhǎng)得像舀奶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斋射,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容