Websocket原理解析以及和http的区别

蔚可云“全站加速”产品支持Websocket协议,它于2008年诞生,至今不过13年的历史,今天我们就来聊聊websocket的原理,以及它和http的区别。

 

 

 

websocket协议在2011年成为国际标准,它的API也被定为W3C标准,如今所有浏览器均已支持websocket。websocket的最大特点是服务器可以主动向客户端推送信息,客户端也可以主动向服务器推送信息,实现平等双向对话。而且客户端和服务器之间只需要完成一次握手,就能直接创建持久性连接。

 

很多网站为了实现推送,使用的都是轮询技术。每隔一段时间,客户端向服务器发出http请求,服务器再返回最新的数据给客户端。这样做有一个很明显的缺点,因为客户端要不断地向服务器发送http请求,每次都要带较长的头部,真正有效的数据可能很小,浪费了很多带宽资源。

 

 

 

一些轮询技术虽然也可以实现双向通信,但往往带有一些致命缺点,或者没从根本上解决问题,比如已然要客户端不断发送请求。

 

为了解决这个问题,HTML5定义了websocket协议。有了这个协议,服务器能主动推送信息给客户端,打破“客户端发起请求,服务器再推送信息”这一形式,节省大量的带宽和服务器资源。

 

 

 

一、websocket有很多优点:

 

1.它建立在TCP协议之上,因此服务器实现较为容易

 

2.握手阶段采用http协议,与http有较好的兼容性

 

3.数据轻量,节省性能,通信效率高

 

4.可发送二进制数据

 

二、websocket连接过程:

 

1.客户端发出http请求,经过3次握手后,建立TCP连接,http请求里存放websocket支持的版本号等信息。

 

2.服务器收到客户端连接请求后,同样以http协议回应。

 

3.连接成功后,服务器和客户端便能进行双向通信。

 

可以看出,websocket与http有一定的关系,但关系不大,两者有交集但不是全部。

 

websocket需借助http完成一部分握手,只需经过一次http请求,就可以做到将源源不断的信息传送了。

 

以上就是关于websocket的全部内容了,websocket和http虽然有很多不用点,但有一些方面是相同的,比如它们都基于TCP协议,都是应用层协议,都是可靠性传输协议。CDN全站加速产品由于支持websocket,使得它在增加用户体验、提升应用性能方面更有优势。

Websocket原理解析以及和http的区别

上一篇:关于JSON.parse()和JSON.stringify()知识点的普及((已解决)Unexpected token o in JSON at position 1)


下一篇:SpringBoot2 整合FreeMarker模板,完成页面静态化处理