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)

相关推荐
小薛博客1 小时前
4、前后端联调文生文、文生图事件
java·ai
愛~杦辷个訾2 小时前
芋道项目,商城模块数据表结构
java·sql·芋道·yudao-cloud·芋道商城
想太多会累i2 小时前
Spring Boot 使用Itext绘制并导出PDF
spring boot·pdf
zm3 小时前
TCP 粘包
服务器·网络·php
bjbxkj3 小时前
量子隧穿:PROFINET到Ethernet ip的无损耗协议转换方案转
网络·网络协议·tcp/ip
C_Liu_5 小时前
C语言:深入理解指针(5)
java·c语言·算法
honey ball6 小时前
R & S的EMI接收机面板
linux·运维·网络
佛祖保佑永不宕机6 小时前
麒麟系统ARM64架构部署mysql、jdk和java项目
java·arm
qqxhb7 小时前
零基础学Java——第十一章:实战项目 - 桌面应用开发(JavaFX入门)
java·开发语言·javafx
hy.z_7777 小时前
【数据结构】链表 LinkedList
java·数据结构·链表