websocket入门详解

入门websocket的基础应该掌握一下问题:

1、什么是握手?

2、什么是websocket?

3、websocket和http的区别,应用场景

4、html前端简单代码演示

5、springboot整合websocket使用

6、使用vue+elementui打造简单聊天室

7、使用websocket进行信息实时推送,整合redis和数据库进行存储(若依Ruoyi+websocket)

1、什么是握手?

"握手"在计算机网络中是一个比喻性的术语 ,用来描述两个设备或程序在通信开始前,互相确认彼此身份、能力和准备状态的过程,就像现实中人们见面时通过"握手"表示友好和确认一样。

简单来说就是:

握手 = 建立通信前的"问好+确认"步骤

目的:确保双方都准备好、安全、可靠地通信。

什么是TCP的三次握手?

"三次握手"是指在建立 TCP连接 时,客户端与服务器之间进行的三个步骤,用于确保双方都能正常发送和接收数据。这是 TCP 协议中非常基础而重要的概念。

为什么要三次握手?

主要目的是为了 确保双方都具备发送和接收能力,并为数据传输建立可靠的连接。

三次握手的详细解析

可以将客户端理解成浏览器,服务器就是后端

客户端 服务器

| |

| --------------------- SYN, Seq = 100 -----------> | 第一次握手

| |

| <--- SYN+ACK, Seq = 200, Ack = 101 ---> | 第二次握手

| |

| ------ ACK, Seq = 101, Ack = 201 -----------> | 第三次握手

| |

模拟的三次抓包详细

第一次握手:客户端 → 服务器
  • 客户端向服务器发送一个 SYN(同步)包,表示希望建立连接。

  • 包含客户端的初始序列号(Seq = 100)。

第二次握手:服务器 → 客户端
  • 服务器收到 SYN 后,回复一个 SYN+ACK 包

  • 表示"我同意建立连接",并告诉客户端自己的初始序列号(Seq = 200)。

  • 同时对客户端的 SYN 进行确认(Ack = 101)。

第三次握手:客户端 → 服务器
  • 客户端收到 SYN+ACK 后,再发送一个 ACK 包,表示连接建立完成。

  • 确认服务器的序列号(Seq=101,Ack = 201)。

现实生活中的例子

小陈:你好,我是 小陈,能听见我吗?(SYN)

小霜:你好 小陈,我是 小霜,能听见你,我这边也能说话,你能听我吗?(SYN+ACK)

小陈:能听见,咱们开始说话吧!(ACK)

相关推荐
电商API_1800790524730 分钟前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
酣大智35 分钟前
接口模式参数
运维·网络·网络协议·tcp/ip
Genie cloud42 分钟前
1Panel SSL证书申请完整教程
服务器·网络协议·云计算·ssl
一点程序43 分钟前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
C雨后彩虹1 小时前
计算疫情扩散时间
java·数据结构·算法·华为·面试
2601_949809591 小时前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
24zhgjx-lxq1 小时前
华为ensp:MSTP
网络·安全·华为·hcip·ensp
vx_BS813301 小时前
【直接可用源码免费送】计算机毕业设计精选项目03574基于Python的网上商城管理系统设计与实现:Java/PHP/Python/C#小程序、单片机、成品+文档源码支持定制
java·python·课程设计
2601_949868361 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 已签合同实现
java·开发语言·flutter
ling___xi1 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络