有时候还会有老铁在考虑在什么样的环境下使用WebSocket,什么样的环境下使用HTTP,今天咱们来讲下WebSocket和HTTP。web
WebSocket和HTTP的区别浏览器
http协议是用在应用层的协议,他是基于tcp协议的,http协议创建连接也必需要有三次握手才能发送信息。服务器
http连接分为短连接,长连接,短连接是每次请求都要三次握手才能发送本身的信息。即每个request对应一个response。长连接是在必定的期限内保持连接。保持TCP链接不断开。客户端与服务器通讯,必需要有客户端发起而后服务器返回结果。客户端是主动的,服务器是被动的。 websocket
WebSocket他是为了解决客户端发起多个http请求到服务器资源浏览器必需要通过长时间的轮训问题而生的,他实现了多路复用,他是全双工通讯。在webSocket协议下客服端和浏览器能够同时发送信息。socket
创建了WenSocket以后服务器没必要在浏览器发送request请求以后才能发送信息到浏览器。这时的服务器已有主动权想何时发就能够发送信息到服务器。并且信息当中没必要在带有head的部分信息了与http的长连接通讯来讲,这种方式,不只能下降服务器的压力。并且信息当中也减小了部分多余的信息。tcp
HTTP的长链接与websocket的持久链接网站
HTTP1.1的链接默认使用长链接(persistent connection),spa
即在必定的期限内保持连接,客户端会须要在短期内向服务端请求大量的资源,保持TCP链接不断开。客户端与服务器通讯,必需要有客户端发起而后服务器返回结果。客户端是主动的,服务器是被动的。资源
在一个TCP链接上能够传输多个Request/Response消息对,因此本质上仍是Request/Response消息对,仍然会形成资源的浪费、实时性不强等问题。get
若是不是持续链接,即短链接,那么每一个资源都要创建一个新的链接,HTTP底层使用的是TCP,那么每次都要使用三次握手创建TCP链接,即每个request对应一个response,将形成极大的资源浪费。
长轮询,即客户端发送一个超时时间很长的Request,服务器hold住这个链接,在有新数据到达时返回Response
websocket的持久链接
只需创建一次Request/Response消息对,以后都是TCP链接,避免了须要屡次创建Request/Response消息对而产生的冗余头部信息。
但愿讲了这么多可以帮助你们更加深刻的去了解WebSocket和HTTP之间的区别和联系。若是以为仍是没有理解能够试试用一下第三方WebSocket服务,相似GoEasy这种免费的,你们能够去了解一下。网站好像是www.goeasy.io,码了这么多…今天就说到这里咯。