小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
系列文章
简介
Websocket 是一种网络通信协议,在 2008 年诞生,2011 年成为国际标准。所有浏览器都已经支持了。
它的出现时为了解决 HTTP 协议,服务端不能主动向客户端推动信息的问题的。
比如想查询一个zip包的校验状态,只能通过客户端向服务端发送请求,服务端返回查询的结果。如果服务端有连续的状态变化,比如从校验中 -> 校验成功/校验失败,中间耗时比较长的话,客户端就需要每隔一段时间,去轮询请求服务端的接口
这样轮询的效率低,并且耗费资源(要不断的建立连接,或者 http 连接一直打开),典型的场景就是聊天室
Websocket 和 HTTP 的区别
WebSocket 时基于 TCP 上独立的协议,但是握手的部分是由 HTTP 完成的
它和 HTTP 的区别是:
- WebSocket 客户端和服务端只建立一个 TCP 连接,使用的连接更少
- WebSocket 服务端可以推送数据到客户端,比 HTTP 的请求响应模式更灵活、高效
- WebSocket 有更轻量的协议头,更少的数据传送量
其中最主要的一点是,服务端可以推送数据到客户端,这也是 WebSocket 产生的主要原因
参考
《深入浅出 Node.js》网络编程一章 www.ruanyifeng.com/blog/2017/0… websocket.org/
以上是本文的全部内容,欢迎点赞和评论~