日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
mongodb兩列互換的方法是什么

WebSocket是什么原理?為什么可以實(shí)現(xiàn)持久連接?

WebSocket是一種不同于HTTP的協(xié)議,重要的是它完美彌補(bǔ)了http協(xié)議在某些場合下的重大不足。

成都創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

接下來,我來簡單介紹下websocket與http的區(qū)別。

http/https請(qǐng)求是目前最廣泛使用的網(wǎng)絡(luò)通信協(xié)議,但是它們有一個(gè)非常大局限性,那就是請(qǐng)求只能由agent發(fā)起,server只能被動(dòng)的等待請(qǐng)求,而且一次請(qǐng)求就是一個(gè)response和request對(duì)應(yīng)。雖然在HTTP 1.1中進(jìn)行了改進(jìn),增加了keep-alive,出現(xiàn)了長連接這樣的概念,但是仍然是一個(gè)request對(duì)應(yīng)一個(gè)response,這在request中攜帶大量header信息,而response中沒什么有用信息的時(shí)候,無疑是對(duì)通信資源的浪費(fèi)。

也許你覺得這么說有點(diǎn)抽象,那么我們舉個(gè)例子來說明,我們在瀏覽器上用QQ聊天,如果瀏覽器作為agent使用的是http協(xié)議與server端通信,那么它需要定時(shí)去訪問server(輪詢),問它,喜歡的女神有沒有回復(fù)我的信息啊??墒桥窨赡苋ハ丛枇?,手機(jī)沒帶進(jìn)浴室,于是browser這個(gè)agent就不停的發(fā)一個(gè)大腦袋的request去server,每次拿回來的卻都是干癟癟的response。這時(shí)候,如果你一邊看電影一邊等女神的回復(fù),那么結(jié)果可能就是電影很卡,女神也沒有消息。

這個(gè)時(shí)候WebSocket協(xié)議就出現(xiàn)了。如果使用的是websocket協(xié)議,在登陸了網(wǎng)頁版QQ之后,這個(gè)瀏覽器就會(huì)作為agent向server發(fā)起請(qǐng)求,建立一個(gè)連接,在這個(gè)連接建立期間,是可以進(jìn)行雙工通信的,就是說agent可以主動(dòng)把消息發(fā)送給server,server也能在收到女神回復(fù)后,第一時(shí)間把消息傳遞到你的屏幕上,減少了無意義的輪詢消耗,同時(shí)也保證了等女神回復(fù)期間電影不卡,不會(huì)無聊。甚至也可以簡單的理解,只需要經(jīng)過一次HTTP請(qǐng)求的連接建立,就可以進(jìn)行源源不斷的信息傳送了。

說到實(shí)現(xiàn)長連接,說白了,websocket的設(shè)計(jì)者在最初就是沒想過像http協(xié)議那樣謹(jǐn)慎小氣,建立了連接說完一句話就跑。否則任何基于TCP的應(yīng)用協(xié)議,都是可以進(jìn)行長連接通信的。

也許正是當(dāng)初http的如此設(shè)計(jì),才給了WebSocket如今的用武之地。

解釋W(xué)ebSocket為什么可以實(shí)現(xiàn)持久連接,還是先介紹一些什么是WebSocket,以及它產(chǎn)生的原因是什么。

WebSocket是一個(gè)協(xié)議。

協(xié)議就是王八的屁股——規(guī)定,你可以不遵守,但是別人都遵守你不遵守,你就跟別人玩不到一塊去。

WebSocket協(xié)議在2008年誕生,2011年成為了國際標(biāo)準(zhǔn),現(xiàn)在絕大部分瀏覽器都已經(jīng)支持了。

其實(shí)原因是為了彌補(bǔ)HTTP協(xié)議的不足,因?yàn)镠TTP協(xié)議只能由客戶端發(fā)起請(qǐng)求,并且一個(gè)Request要對(duì)應(yīng)一個(gè)Response(長鏈接也是如此)。

舉個(gè)例子:

我之前做過一個(gè)小項(xiàng)目,只有一個(gè)頁面,展示的是各個(gè)分公司當(dāng)天的業(yè)績,就是掙了多少錢。后臺(tái)服務(wù)是Java,數(shù)據(jù)庫是Mysql,有一張匯總表,內(nèi)容大概是北京-100萬,上海-80萬這樣的。

對(duì)于Web項(xiàng)目開發(fā),往往需要前端和后端進(jìn)行數(shù)據(jù)通信交互,在以前如果前端要和后端通信往往是通過Ajax這種異步方式,但這樣就存在一些弊端,比如說實(shí)時(shí)性要求高的項(xiàng)目(如在線聊天室)就不好使用Ajax這種方式,而應(yīng)該使用“服務(wù)器推”技術(shù)。

在WebSocket出來之前,實(shí)現(xiàn)“服務(wù)器推”基本上都是野路子,不夠優(yōu)雅,而WebSocket一經(jīng)推出,就可以便捷實(shí)現(xiàn)長連接了。

WebSocket是一種借鑒了HTTP協(xié)議的新協(xié)議,隨著HTML5一起推出了WebSocket API(WebSocket不屬于HTML5,HTML5中所謂的“WebSocket”其實(shí)是指“WebSocket API”)。WebSocket和HTTP沒有必然聯(lián)系,不能單純的把WebSocket理解成HTTP協(xié)議的升級(jí),不過WebSocket為了兼容現(xiàn)有的瀏覽器握手規(guī)范,借鑒了HTTP協(xié)議規(guī)范!不過WebSocket協(xié)議解決了HTTP協(xié)議的被動(dòng)性,可以實(shí)現(xiàn)長連接。

WebSocket協(xié)議實(shí)現(xiàn)了瀏覽器與服務(wù)器的全雙工通信,它通過已建立的TCP連接來傳輸數(shù)據(jù),WebSocket協(xié)議的特點(diǎn)是:

WebSocket協(xié)議名為“ws”,它有對(duì)應(yīng)的安全連接協(xié)議名為“wss”;

先像TCP一樣建立連接,WebSocket基于TCP協(xié)議;

客戶端和服務(wù)端握手過程中,客戶端會(huì)發(fā)送一個(gè)包含 Upgrade:請(qǐng)求頭的HTTP請(qǐng)求,告訴服務(wù)器建立一個(gè)WebSocket連接;

服務(wù)端收到請(qǐng)求后,會(huì)將協(xié)議轉(zhuǎn)換為WebSocket協(xié)議,且在協(xié)議轉(zhuǎn)換過程中該連接沒有中斷;

當(dāng)?shù)谝粋€(gè)HTTP Request請(qǐng)求建立TCP連接之后,以后的數(shù)據(jù)交換就不需要再次發(fā)送HTTP Request了,因此這個(gè)連接也就變成了長連接;

http請(qǐng)求響應(yīng)模式是一夜情,websocket請(qǐng)求響應(yīng)模式是小三,tcp請(qǐng)求響應(yīng)模式是夫妻關(guān)系。

一句話就可以說清楚的問題,饒了這么大的一個(gè)圈子。因?yàn)閣ebsocket的本質(zhì)還是基于tcp的,tcp是老爹,既然tcp可以全雙工,那么websocket當(dāng)然可以實(shí)現(xiàn)。http不支持是因?yàn)閰f(xié)議本身規(guī)定是只能響應(yīng)一次,第二次服務(wù)器不認(rèn)識(shí)客戶端了 就像一夜情。如何解決這個(gè)問題?原理就是讓服務(wù)器保留客戶端的身份信息,你不需要再一次告訴服務(wù)器,我是誰,我是你的情人,可以再上車。

到此,以上就是小編對(duì)于mongodb哪個(gè)命令可以切換數(shù)據(jù)庫的問題就介紹到這了,希望這1點(diǎn)解答對(duì)大家有用。


分享標(biāo)題:mongodb兩列互換的方法是什么
地址分享:http://m.5511xx.com/article/cdpiehh.html