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)

相关推荐
郝学胜-神的一滴2 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
绵绵细雨中的乡音2 小时前
深入理解 ET 与 LT 模式及其在 Reactor 模型中的应用
服务器·网络·php
吠品3 小时前
企业信任基石OV SSL证书
网络协议·https·ssl
JH30733 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
暖馒4 小时前
Modbus应用层协议的深度剖析
网络·网络协议·c#·wpf·智能硬件
Coder_Boy_4 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
invicinble4 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟5 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖5 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
yunfuuwqi5 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云