websocket基本原理学习

websocket是一种基于TCP的持久化全双工网络通信协议。

为什么需要websocket

websocket作为一种网络通信协议,使用于客户端和服务端的实时数据通信之中。通常情况下,基于HTTP协议,客户端向服务器发送http请求,服务器响应相应的数据。虽然基于http协议也能完成客户端与服务端的数据通信,但有以下不足之处:

1、在http协议下,客户端与服务器并未建立稳定的持久化的连接。这使得客户端在每次发送的http请求中,都需要身份状态验证信息。

2、数据通信是单向的,在某一时刻数据通信只能是客户端向服务器发送请求,服务器响应。这显然不适用于实时通信场景,因为服务器有状态的变化无法及时的通知客户端。(尽管有一些方式可以改进,如轮询、长轮询以及流化技术,但都存在占用资源、延时增加等问题)

注:以上分析是基于特定应用场景的,即实时数据通信。由于在这样的场景下HTTP变得不那么适合,从而提出了websocket。

websocket特点

websocket作为基于tcp协议通信协议,能够建立客户端与服务器端的持久化通信,并且支持双向数据通信。因此其部分特点为:

1、客户端与服务器端的稳定的持久化的通信;

2、双向数据通信;

3、可以发送文本,也可以发送二进制数据。

4、没有同源限制,客户端可以与任意服务器通信。

websocket通信的建立过程

初始阶段,客户端通过http协议,携带关于websocket的连接信息向服务器发送连接请求。

如果服务器支持websocket,那么将建立与客户端的websocket通信,此后客户端与服务器端通过websocket进行通信,否则连接建立失败。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值