最新消息:阿里云双12优惠,史上最低折扣。

WebSocket协议介绍干货

服务器租用 aliyun 249浏览

网站依托的网站服务器是什么?虚拟主机云服务器如何选?

网站成为互联网时代各行各业的必需品,而网站的建设依托于网站服务器。网站服务器,顾名思义,就是在互联网数据中心中存放网站的服务器。

WebSocket实现了客户端与服务器之间的长连接,这样服务器可以主动推送消息给客户端,有非常丰富的使用场景。如果没有WebSocket协议,要想实现长连接,就需要采用Comet的方式,这种方式就是采用客户端定时http轮询或者iframe流,以此来保证一个长连接。

Comet的缺点:

客户端与服务器采用的还是http协议,双方需要频繁地通讯,这样对于服务器来说性能损耗很大。

http协议来做为长连接,网路传输效率相对较低。

WebSocket协议介绍

Websocket协议主要分为两个部分:握手和数据传输。特别要提到的是,WebSocket在握手阶段使用的是http协议.

 

Websocket

WebSocket握手

客户端建立连接时,通过http发起请求报文。在请求头中,会有如下这些报文,Sec-WebSocket-Key用于安全校验,Sec-WebSocket-Key的值是随机生成的base64编码字符串。

Upgrade:websocket

Connection:Upgrade

Sec-WebSocket-Key:字符串

#指定子协议和版本号

Sec-WebSocket-Protocol:chat,superchat

Sec-WebSocket-Version:13

服务器收到字符串以后,与服务器生成的字符串相连接,形成新的字符串,然后新的字符串会进行sha1散列算法和base64编码,最后返回给客户端.

服务端处理完成以后,生成相应报文。报文告知客户端更新应用层协议为WebSocket协议。

Upgrade:websocket

Connection:Upgrade

Sec-WebSocket-Accept:字符串

Sec-WebSocket-Protocol:chat

客户端接收到服务端的响应报文以后,会对Sec-WebSocket-Key进行校验,校验成功以后,会开始数据传输。

WebSocket与http协议的比较优势:

客户端与服务端只需要建立一个tcp连接。

WebSocket服务端可以主动推送数据到客户端,这比http的请求相应模式更有优势。

WebSocket的协议头更轻量,减少了不必要的数据传输。

WS和WSS

WebSocket可以使用ws或wss来作为统一资源标志符,类似于HTTP或HTTPS。其中,wss表示在TLS之上的WebSocket,相当于HTTPS。默认情况下,WebSocket的ws协议基于Http的80端口;当运行在TLS之上时,wss协议默认是基于Http的443端口。说白了,wss就是ws基于SSL的安全传输,与HTTPS一样样的道理。所以,如果你的网站是HTTPS协议的,那你就不能使用ws://了,浏览器会block掉连接,和HTTPS下不允许HTTP请求一样.

如果你的服务是基于https的,那么客户端就需要使用WSS去进行连接。

使用客户端使用WSS连接不能使用IP的方式,需要使用域名进行连接。

使用WSS需要使用https连接,这并不是协议本身的限制,实际上是由于低版本谷歌浏览器和firefox浏览器的安全机制造成的。

Socket.io

这个库,针对客户端和服务端使用WebSocket分别进行了封装,提供了简洁方便的API。

转载请注明:小猪云服务器租用推荐 » WebSocket协议介绍干货