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

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

新聞中心

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

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

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

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

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

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

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

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

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

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

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

WebSocket是一個協(xié)議。

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

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

其實原因是為了彌補HTTP協(xié)議的不足,因為HTTP協(xié)議只能由客戶端發(fā)起請求,并且一個Request要對應(yīng)一個Response(長鏈接也是如此)。

舉個例子:

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

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

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

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

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

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

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

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

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

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

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

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

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


本文標題:mongodb兩列互換的方法是什么
標題URL:http://www.5511xx.com/article/cdpiehh.html