【WebSocket只有在建立连接时才用到了HTTP,升级完成之后就跟HTTP没有任何关系了。】
-
所以不是基于http协议。也需要先tcp三次握手建立连接
扫码登录这种可以用http定时轮询和长轮询实现(向后端服务器请求),但网页游戏就不行,TCP全双工,但设计之初没考虑网页游戏所以有了websocket(和socket没有关系)
只需要在http消息头带消息告诉要转换为websocket模式。
返回状态码101-表示协议切换。
不需要刷新网页就能产生页面变化。
介绍
WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。
HTTP协议和WebSocket协议对比:
-
HTTP是短连接(一次请求响应之后连接就断了,生命周期结束,需要重新建立连接)【请求响应模式】
-
WebSocket是长连接(生命周期长)
-
HTTP通信是单向的,基于请求响应模式
-
WebSocket支持双向通信
-
HTTP和WebSocket底层都是TCP连接
WebSocket缺点:
服务器长期维护长连接需要一定的成本 各个浏览器支持程度不一 WebSocket 是长连接,受网络限制比较大,需要处理好重连
结论:WebSocket并不能完全取代HTTP,它只适合在特定的场景下使用
WebSocket应用场景:
1). 视频弹幕
2). 网页聊天
3). 体育实况更新
4). 股票基金报价实时更新