了解WebSocket

简介: 熟悉下websocket协议的相关原理和优缺点

以tcp/ip参考模型为例,websocket是在应用层中
image.png

一、为什么会出现websocket?

通常情况下,客户端与服务端之间建立连接后,都是通过客户端来发送请求,服务端收到请求后才发送响应,这种情况可以满足大部分的场景,比如网页
但是,考虑到存在这样一种场景,需要服务端主动给客户端发送数据,如网页游戏中,服务端需要时时反馈数据给到客户端,这种动态刷新客户端页面的场景如何解决呢
一开始的方案是通过客户端定时发送请求来获取数据的刷新,但是这种方式会存在很多的无效请求,浪费网络宽带资源
改进,客户端这边依旧通过定时的方式不断发送请求,服务端这边并不做及时的响应,除非他有新的数据更新。这种方式比较适合数据更新频率不高的场景。但是如果服务端数据更新频率高,这种方式的优势并不明显了。
基于以上的需求,出现全新的应用层协议:websocket,主要用于动态刷新的场景。

二、websocket的特点

1.建立于TCP协议之上,支持全双工通信,保证实时性
2.与Http协议相兼容给,握手阶段采用了http
3.可以发送文本,也可以发送二进制数据
4.服务器的网址就是url,协议标识符是ws(如果加密,则为wss)

三、websocket的实现

1.客户端想服务器发送一个HTTP请求,请求包含了附加头信息,其中Upgrade: WebSocket
2.服务器收到请求并解析,看到Upgrade: WebSocket明白这是一个申请协议升级的请求
3.服务器按照升级的协议向客户端发送响应,这时,客户端与服务端就建立了websocket连接

三、websocket的缺点

websocket属于长连接,受网络限制比较大,在某些场景网络断掉,就需要重连

目录
相关文章
|
20天前
websocket 的使用
websocket 的使用
|
前端开发 网络协议 API
什么是WebSocket?
WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。
1433 0
什么是WebSocket?
|
3天前
|
XML JSON 前端开发
WebSocket是什么
【4月更文挑战第27天】WebSocket,即Web浏览器与Web服务器之间全双工通信标准。
|
3月前
|
移动开发 网络协议 安全
Websocket
Websocket
|
3月前
|
移动开发 网络协议 前端开发
WebSocket一
WebSocket一
|
3月前
|
移动开发 网络协议 Java
WebSocket二
WebSocket二
|
6月前
|
监控 前端开发 安全
你使用过websocket吗?
你使用过websocket吗?
35 0
|
9月前
|
资源调度 网络协议 JavaScript
[NsetJs] 使用websocket简单介绍
WebSocket 是一种基于 TCP 的协议,它提供了双向实时通信的能力。相比传统的 HTTP 协议,WebSocket 具有更低的延迟和更高的性能。以下是 WebSocket 的一些特点和优势:
|
9月前
|
移动开发 网络协议 前端开发
WebSocket理解
WebSocket理解
|
9月前
|
网络协议 定位技术 PHP
【说说你对webSocket的理解?】
【说说你对webSocket的理解?】