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)