mongodb两列互换的方法是什么

WebSocket是什么原理?为什么可以实现持久连接?

WebSocket是一种不同于HTTP的协议,重要的是它完美弥补了http协议在某些场合下的重大不足。

成都创新互联基于分布式IDC数据中心构建的平台为众多户提供服务器托管 四川大带宽租用 成都机柜租用 成都服务器租用。

接下来,我来简单介绍下websocket与http的区别。

http/https请求是目前最广泛使用的网络通信协议,但是它们有一个非常大局限性,那就是请求只能由agent发起,server只能被动的等待请求,而且一次请求就是一个response和request对应。虽然在HTTP 1.1中进行了改进,增加了keep-alive,出现了长连接这样的概念,但是仍然是一个request对应一个response,这在request中携带大量header信息,而response中没什么有用信息的时候,无疑是对通信资源的浪费。

也许你觉得这么说有点抽象,那么我们举个例子来说明,我们在浏览器上用QQ聊天,如果浏览器作为agent使用的是http协议与server端通信,那么它需要定时去访问server(轮询),问它,喜欢的女神有没有回复我的信息啊。可是女神可能去洗澡了,手机没带进浴室,于是browser这个agent就不停的发一个大脑袋的request去server,每次拿回来的却都是干瘪瘪的response。这时候,如果你一边看电影一边等女神的回复,那么结果可能就是电影很卡,女神也没有消息。

这个时候WebSocket协议就出现了。如果使用的是websocket协议,在登陆了网页版QQ之后,这个浏览器就会作为agent向server发起请求,建立一个连接,在这个连接建立期间,是可以进行双工通信的,就是说agent可以主动把消息发送给server,server也能在收到女神回复后,第一时间把消息传递到你的屏幕上,减少了无意义的轮询消耗,同时也保证了等女神回复期间电影不卡,不会无聊。甚至也可以简单的理解,只需要经过一次HTTP请求的连接建立,就可以进行源源不断的信息传送了。

说到实现长连接,说白了,websocket的设计者在最初就是没想过像http协议那样谨慎小气,建立了连接说完一句话就跑。否则任何基于TCP的应用协议,都是可以进行长连接通信的。

也许正是当初http的如此设计,才给了WebSocket如今的用武之地。

解释WebSocket为什么可以实现持久连接,还是先介绍一些什么是WebSocket,以及它产生的原因是什么。

WebSocket是一个协议。

协议就是王八的屁股——规定,你可以不遵守,但是别人都遵守你不遵守,你就跟别人玩不到一块去。

WebSocket协议在2008年诞生,2011年成为了国际标准,现在绝大部分浏览器都已经支持了。

其实原因是为了弥补HTTP协议的不足,因为HTTP协议只能由客户端发起请求,并且一个Request要对应一个Response(长链接也是如此)。

举个例子:

我之前做过一个小项目,只有一个页面,展示的是各个分公司当天的业绩,就是挣了多少钱。后台服务是Java,数据库是Mysql,有一张汇总表,内容大概是北京-100万,上海-80万这样的。

对于Web项目开发,往往需要前端和后端进行数据通信交互,在以前如果前端要和后端通信往往是通过Ajax这种异步方式,但这样就存在一些弊端,比如说实时性要求高的项目(如在线聊天室)就不好使用Ajax这种方式,而应该使用“服务器推”技术。

在WebSocket出来之前,实现“服务器推”基本上都是野路子,不够优雅,而WebSocket一经推出,就可以便捷实现长连接了。

WebSocket是一种借鉴了HTTP协议的新协议,随着HTML5一起推出了WebSocket API(WebSocket不属于HTML5,HTML5中所谓的“WebSocket”其实是指“WebSocket API”)。WebSocket和HTTP没有必然联系,不能单纯的把WebSocket理解成HTTP协议的升级,不过WebSocket为了兼容现有的浏览器握手规范,借鉴了HTTP协议规范!不过WebSocket协议解决了HTTP协议的被动性,可以实现长连接。

WebSocket协议实现了浏览器与服务器的全双工通信,它通过已建立的TCP连接来传输数据,WebSocket协议的特点是:

WebSocket协议名为“ws”,它有对应的安全连接协议名为“wss”;

先像TCP一样建立连接,WebSocket基于TCP协议;

客户端和服务端握手过程中,客户端会发送一个包含 Upgrade:请求头的HTTP请求,告诉服务器建立一个WebSocket连接;

服务端收到请求后,会将协议转换为WebSocket协议,且在协议转换过程中该连接没有中断;

当第一个HTTP Request请求建立TCP连接之后,以后的数据交换就不需要再次发送HTTP Request了,因此这个连接也就变成了长连接;

http请求响应模式是一夜情,websocket请求响应模式是小三,tcp请求响应模式是夫妻关系。

一句话就可以说清楚的问题,饶了这么大的一个圈子。因为websocket的本质还是基于tcp的,tcp是老爹,既然tcp可以全双工,那么websocket当然可以实现。http不支持是因为协议本身规定是只能响应一次,第二次服务器不认识客户端了 就像一夜情。如何解决这个问题?原理就是让服务器保留客户端的身份信息,你不需要再一次告诉服务器,我是谁,我是你的情人,可以再上车。

到此,以上就是小编对于mongodb哪个命令可以切换数据库的问题就介绍到这了,希望这1点解答对大家有用。

文章名称:mongodb两列互换的方法是什么
文章URL:http://www.mswzjz.com/qtweb/news38/199088.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联