node 原理 - 网络 - Websocket(一)什么是 Websocket

318 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

系列文章

简介

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/

以上是本文的全部内容,欢迎点赞和评论~