websocket,WebSocket与Socket的区别,HTTP与WebSocket区别,WebSocket特点

文章目录

websocket

1.websocket简单介绍

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

重点

  • 1.全双工,客户端与服务端可以同时相互通信,就如同打电话一样,两边可以同时说话。
  • 2.允许服务端主动向客户端发数据,在以往的通信中是客户端向服务端发送请求,服务端再回复给客户端,一切起源只能是客户端的request,服务端无法主动发送信息给客户 端;在websocket中,则可以服务端主动给客户端发送信息。
  • 3.持久性,当服务端跟客户端通信连接成功(即建立起一个管道),这个管道将会一直存在,随时可以传送数据,无需在request。

全双工通讯传输协议

允许数据在两个方向上同时传输 。双向传输的意思

半双工:可以双向传输,但是同一时刻只能一个方向传输

半工:单向传输数据

WebSocket与Socket的区别

WebSocket拥有完整的应用层协议,包含一套标准的API

Socket是一组接口,是应用层与TCP/IP协议通信的中间软件抽象层,

HTTP与WebSocket区别

  • http是短连接,请求之后会关闭连接。
  • WebSocket长连接,只需通过一次请求初始化连接,然后所有的请求和响应都是通过这个TCP连接进行通信。

WebSocket特点

  • 与http协议有良好的兼容性
  • 建立在TCP协议之上,与http同属于'应用层
  • 数据量小、性能开销小、通信高效
  • 可以发送文本和二进制
  • 可以与任意服务器通信
  • 握手阶段采用http协议,默认端口是80和443
  • 协议标识字符ws、加密wss
  • 服务器可以主动向客户端请求
相关推荐
澈2071 小时前
C++并查集:高效解决连通性问题
java·c++·算法
2401_873479403 小时前
运营活动被薅羊毛怎么防?用IP查询+设备指纹联动封堵漏洞
java·网络·tcp/ip·github
ShiJiuD6668889993 小时前
大事件板块一
java
摇滚侠3 小时前
@Autowired 和 @Resource 的区别
java·开发语言
SeaTunnel3 小时前
(八)收官篇 | 数据平台最后一公里:数据集成开发设计与上线治理实战
java·大数据·开发语言·白鲸开源
吴声子夜歌4 小时前
Java——线程的基本协作机制
java·线程协作
谙弆悕博士4 小时前
【附C++源码】从零开始实现 2048 游戏
java·c++·游戏·源码·项目实战·2048
独自归家的兔5 小时前
OCPP 1.6 协议详解:GetLocalListVersion 获取本地列表版本指令
java·后端·物联网·spring·ocpp1.6
Apache RocketMQ6 小时前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
xiaoming00187 小时前
JAVA项目打包部署运维全流程(多服务、批量)
java·linux·运维