弄懂 Websocket 你得知道的这 3 点

1. WebSocket原理

WebSocket同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。

WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket API也被W3C定为标准。

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

握手过程:

  1. 浏览器、服务器建立TCP连接,三次握手。这是通信的基础,传输控制层,若失败后续都不执行。

  2. TCP连接成功后,浏览器通过HTTP协议向服务器传送WebSocket支持的版本号等信息。(开始前的HTTP握手)

  3. 服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据。

  4. 当收到了连接成功的消息后,通过TCP通道进行传输通信。

Websocket默认使用请求协议为:ws://,默认端口:80。对TLS加密请求协议为:wss://,端口:443。

2. WebSocket与HTTP的关系

相同点

  1. 都是一样基于TCP的,都是可靠性传输协议。

  2. 都是应用层协议。

不同点:

  1. WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。

  2. HTTP是单向的。

  3. WebSocket是需要握手进行建立连接的。

联系: WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

3. WebSocket与Socket的关系

Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。tcp是可靠的连接,且连接后才可以发送数据;udp是不可靠的连接,不连接就可以发送数。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。

WebSocket则是一个典型的应用层协议,Socket是传输控制层协议。

如果你在日常工作中需要进行 Websocket 协议测试,但又不知道使用什么工具,那我推荐你用这一款开源的 API 管理工具——Postcat

 

在线 Demo 链接:https://postcat.com/zh/?utm_source=cs&utm_campaign=xh&utm_content=pd2512

文档链接:https://docs.postcat.com/?utm_source=cs&utm_campaign=xh&utm_content=pd2512

如果你觉得这个开源项目还可以的话,不妨点个 star 支持下他们,如果你觉得还需要继续优化,不妨去提个Issue.

Github:https://github.com/Postcatlab/postcat

Gitee:https://gitee.com/eolink_admin/postcat

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值