简单介绍
1、webSocket是HTML5下不同于http的一种新协议(本质上也是基于tcp协议),实现了浏览器和服务器的全双工通信,是一个持久化的协议
-
WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,就像Socket一样;
-
WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信。
原理:
websocket为应用层协议,其定义在TCP/IP协议栈之上通过握手机制,在客户端和服务器之间建立了一个类似TCP的长连接,从而方便他们之间的双向通信
数据收发的三个过程
1)TCP协议的三次握手四次挥手的过程必然存在 2)websocket协议本身的握手环节
3)websocket协议握手成功之后的收发数据环节
webSocket和http协议的区别:
相同点:1、都是基于tcp的可靠性传输协议
2、都属于应用层协议
不同点:1、webSocket是双向通信协议,模拟Socket协议,可以双向发送或者接受信息,而HTTP是单向的。
2、webSocket是需要浏览器和服务器握手建立连接的
3、http是由浏览器发起向服务器的连接,服务器预先并不知道这个连接。
两者联系:webSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协 议的。
webSocket发送数据的总体过程
1、首先,客户端发起HTTP请求,经过TCP的三次握手后,建立TCP连接;在HTTP请求中存放WebSocket支持的版本信息等,如:Upgrade,connection,webSocket-Version等
2、服务器在收到客户端握手的信息请求后,同样产用HTTP协议回馈数据
3、最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信
注意:
最初握手阶段是http协议,握手完成后就切换到了webSocket协议,并完全与http协议脱离了
建立通