- 博客(189)
- 收藏
- 关注
原创 WebSocket、HTTPS 与浏览器访问网页全过程
输入URL↓DNS解析↓获得IP↓TCP三次握手↓发送HTTP请求↓Gin路由匹配↓返回HTML↓加载CSS/JS/图片↓浏览器渲染↓页面显示WebSocket 本质是通过 HTTP 完成协议升级,然后基于 TCP 长连接实现全双工通信;HTTPS 本质是在 HTTP 之上增加 TLS 加密层;浏览器访问网页时会经历 DNS 解析、TCP 三次握手、HTTP 请求响应、资源加载和页面渲染等多个步骤。
2026-06-03 21:42:14
398
原创 网络基础核心笔记(HTTP、TCP、前后端通信)
前端负责页面,后端负责数据。用户点击按钮后,前端通过 HTTP 发送 JSON 数据,HTTP 底层通过 TCP 三次握手建立连接,再通过 IP 找到服务器。Gin 接收请求后解析 JSON、处理业务并返回响应,前端收到 JSON 后更新页面,这样就完成了一次完整的前后端通信。前端↓HTTP↓TCP↓Gin↓MySQL↓Gin↓HTTP↓前端。
2026-06-03 21:39:49
348
原创 前端和后端是怎么配合工作的(Go后端视角)
login/register/user/info接口(API)一个URL对应一个处理函数/userGetUser()前端负责页面,后端负责数据。用户操作页面后,前端通过 HTTP 请求把 JSON 发给 Gin,Gin 使用接收数据,处理业务并查询数据库,然后通过c.JSON返回结果,前端再根据返回的 JSON 更新页面。前端↓HTTP请求↓Gin接口↓数据库↓Gin返回JSON↓前端渲染页面。
2026-06-01 22:02:12
306
2
原创 输入校验(为什么在微信里面打了一堆空格,键盘上的 “发送” 变成了 “换行”,右边也没有独立发送按钮 想点发送,发现按钮是灰的或者直接消失了)
username 是否为空password 长度是否符合要求email 格式是否正确年龄是否超出范围输入校验用户名必须以 admin 开头Gin默认没有。可以注册自己的规则。})JSON解析结构体赋值validator校验常见标签:required 必填min 最小长度max 最大长度len 固定长度gt 大于gte 大于等于。
2026-06-01 20:30:25
432
1
原创 Go 语言匿名函数详解
/ 定义并立即调用匿名函数func() {")}()// 定义匿名函数并赋值给变量fmt.Println(f(3, 5)) // 输出 8匿名函数可以立即执行,也可以赋值给变量后多次调用。匿名函数的类型由其参数和返回值确定,可以像普通函数一样传递和返回。匿名函数就是没有名字的函数,可以赋值给变量、传递和返回。匿名函数捕获外部变量就形成闭包,状态可以被保留。Go 语言中,匿名函数和闭包是函数式编程和高阶函数的核心工具。
2026-05-31 21:26:49
201
原创 Go 语言闭包(Closure)详解
闭包 = 函数 + 捕获的外部变量捕获的变量在闭包内是引用,修改会影响外部变量循环中使用闭包需注意变量捕获问题Go 中闭包常用于累加器、回调和函数工厂理解闭包是深入掌握 Go 函数式编程风格的关键。
2026-05-31 21:25:02
676
1
原创 Redis 常用操作笔记(Go 开发实战)
字符串 String哈希 Hash列表 List集合 Set有序集合 Sorted Set键操作与过期事务 Transaction发布订阅 Pub/Sub掌握这些内容,可以应对绝大多数 Go 后端开发场景,例如缓存、排行榜、消息队列、队列任务等。
2026-05-31 21:22:53
376
原创 Go 语言反射(Reflection)详解
反射可以在运行时获取变量的类型和值信息获取类型信息,获取值修改值必须是可设置的,并且通常需要传入指针可以通过反射动态访问字段和调用方法Go 的反射非常强大,但滥用会影响性能,通常用于框架、序列化、依赖注入等场景。
2026-05-31 21:19:13
281
原创 Go 方法接收者超清晰笔记(类型名 vs 变量名)
Stu是类型名:模板、种类,不能访问字段s是变量名:实例对象,可以访问字段方法接收者必须(变量名 类型),缺一不可无变量名的接收者,无法操作结构体字段值接收者修改的是副本,指针接收者修改的是原对象本质类似,接收者变量代表当前调用对象。
2026-05-30 18:27:56
462
原创 Go interface 底层的 itab 到底是什么
你已经知道:这里:那么:Go 到底是怎么知道:里面的 Dog 实现了 Animal?又是怎么找到:应该调用哪个函数的?答案:就是:一、先看这段代码输出:二、问题来了变量:类型是:但是:真正装进去的是:那么:执行:的时候:Go 怎么知道:应该去调用:而不是:呢?前面讲过:interface 本质:例如:底层:大概是:四、但仅仅有类型还不够因为:Go 还需要知道:例如:五、于是出现了 itabitab:全称:翻译:六、itab 是干什么的一句话:
2026-05-30 12:10:05
341
原创 后端开发里那些“真正重要”的东西
很多人刚学后端:但:真正工作后:你会发现:真正重要的:整个系统怎么运转今天:不讲某一个具体技术。而是:这些东西:很多教程:不会认真讲。但:特别重要。
2026-05-25 22:32:42
484
原创 CORS 入门笔记(前后端跨域)
CORS:跨域资源共享浏览器允许不同网站之间互相请求数据的规则必须:协议域名端口同源很多时候:明明只发了一次请求为什么后端收到两次?预检请求(OPTIONS)真实项目:一般:允许所有网站},},},}))浏览器的跨域安全机制后端通过 Header 告诉浏览器:“我允许你访问”前端请求↓浏览器检查是否跨域↓后端返回允许跨域 Header↓浏览器决定是否放行。
2026-05-25 18:53:05
452
原创 Kafka 操作流程(零基础完整流程)
镜像:Kafka 安装包启动 Kafka↓创建 Topic↓Producer 发消息↓Topic 存消息↓Consumer 读消息真正重要:发收别一开始:PartitionOffset副本机制容易直接劝退。
2026-05-24 22:31:48
432
1
原创 Kafka 零基础入门(最基本用法)
Producer 发消息↓Topic 存消息↓Consumer 读消息你现在:发收别一开始:PartitionOffset副本机制容易直接崩。
2026-05-24 22:29:13
377
原创 Kafka 入门笔记(核心语法 + 用法)
一个 Topic:拆成多个分区Partition0Partition1Partition2高吞吐分布式消息队列Producer↓Topic↓Partition↓概念作用BrokerKafka服务器Topic消息分类Partition分区并行Offset消息编号消费者组NewWriter → 发消息NewReader → 收消息高吞吐高并发分布式实时流处理。
2026-05-24 22:26:49
358
1
原创 消息队列(MQ)入门笔记
MQ:消息队列存消息的中转站扣库存同一消息:来两次。扣两次系统之间的异步通信中间件解耦异步削峰生产者↓消息队列↓消费者几乎属于经典组合。
2026-05-24 22:24:18
670
原创 GORM 标签详解(数据库字段映射核心)
GORM 标签:控制数据库字段规则标签作用primaryKey主键唯一索引index普通索引not null非空type指定字段类型default默认值comment注释结构体 = Go里的数据模型gorm标签 = 数据库规则GORM = 自动帮你生成SQL。
2026-05-24 20:37:11
512
原创 结构体标签与数据流向 笔记
很多新人:json 标签只能接收数据返回 JSON 时也会用因为:只读配置不写回配置文件配置文件 → Go通常:是单向。不同数据格式之间的映射规则标签作用json前后端 JSON 映射gorm数据库字段映射toml/ini配置文件映射结构体是中间桥梁标签负责建立映射整个 Go Web 开发:结构体 + 标签展开。
2026-05-24 17:06:02
484
原创 Docker 里面的镜像(Image)和容器(Container)到底是什么
镜像:只读模板程序运行环境依赖配置Redis镜像MySQL镜像Ubuntu镜像Go镜像容器:镜像运行后的实例真正运行中的程序镜像(Image)程序 + 环境 + 配置 的模板容器(Container)镜像运行后的实例真正运行中的程序镜像负责“打包”容器负责“运行”
2026-05-23 22:41:19
586
原创 Docker 日常操作笔记(开发最常用命令)
命令作用查看镜像下载镜像docker run创建运行容器docker ps查看容器查看日志进入容器停止容器docker rm删除容器镜像是模板容器是真正运行的程序开发里:快速搭环境统一环境快速部署。
2026-05-23 22:39:47
534
原创 Docker 入门笔记(后端开发必学)
镜像:安装包模板MySQL镜像Redis镜像Go镜像Ubuntu镜像容器:真正运行起来的东西运行中的 MySQL运行中的 Redis仓库:存放镜像Docker HubGitHub但:GitHub 存代码。存镜像镜像构建脚本COPY . .轻量级容器技术打包环境隔离运行快速部署镜像 Image容器 Container仓库 Repository下载镜像↓创建容器↓运行程序已经属于基础技能组合。
2026-05-23 22:37:43
455
原创 Redis Sorted Set(有序集合)详解
Sorted Set = 自动排序的 SetSet 的去重自动排序两个特性。0 = 第一个-1 = 最后一个0 -1全部数据带分数的自动排序集合自动排序元素唯一支持排名支持范围查询排行榜热搜榜积分榜命令作用ZADD添加ZRANGE正序查看ZREVRANGE倒序查看ZREM删除ZSCORE查看分数ZRANK查看排名只要涉及排行榜几乎都会想到 Redis Sorted Set。
2026-05-19 15:54:16
226
2
原创 Go 连接 Redis 代码详细解析
创建 Redis 客户端↓连接 Redis↓发送 PING 测试↓返回 PONGrdb 是 Redis 操作对象ctx 是上下文Options 是连接配置Ping 用于测试连接。
2026-05-18 22:01:09
593
4
原创 前后端交互到底是什么?(超详细理解版)
HTTP协议互联网里的“说话规则”浏览器、前端、后端:都必须遵守它。前端通过 HTTP 请求向后端要数据,后端处理后返回 JSON,前端根据 JSON 更新页面。整个现代 Web 开发:几乎都建立在这个模型上。
2026-05-17 19:59:26
565
原创 Go ini 配置加载:`ini.MapTo` 详细解析
ini:"字段名"标签是关键,告诉ini.MapToJSON 配置文件中的哪一项对应 Go 字段。:将 INI 配置文件映射到 Go 结构体外部数据 → 标签匹配 → 赋值给结构体和c.BindJSON十分类似,只不过数据来源不同(Body vs 文件)使用MapTo可以快速、整洁地管理配置,提高可维护性。
2026-05-17 17:52:00
186
原创 Gin 中 `c.BindJSON` 与 `c.JSON` 详细讲解
方法作用数据方向接收前端 JSON,填入 Go 结构体前端 → 后端将 Go 对象转换成 JSON,返回前端后端 → 前端结合使用c.BindJSONc.JSON,就完成了前后端的数据闭环,实现了完整的请求处理和响应返回。
2026-05-17 17:21:37
270
原创 Gin 核心概念 & 前后端交互笔记
JSON 是前后端通用语言,请求和响应都是 JSON是 Gin 的核心管家,负责绑定请求、返回响应结构体标签json:"..."实现字段大小写翻译Body用来传递请求数据,不在 URL函数签名规范:参数在括号,返回值在括号外,Gin 路由函数固定传入理解这些概念,你就能顺畅完成前后端交互,并在 Gin 框架下处理各种请求。
2026-05-17 17:14:16
506
原创 Gin 核心对象:`c *gin.Context` 详细解析
每个请求独立创建,线程安全负责整个请求生命周期:获取请求 → 处理请求 → 返回响应中间件和路由共享数据,通过Set和Get提供丰富方法:获取参数、获取请求头、绑定 JSON、返回各种类型响应控制请求流程Next()Abort()掌握,你就掌握了 Gin 的核心管家,任何请求处理、参数获取、响应返回都离不开它。
2026-05-17 17:08:56
389
原创 Gin 中间件笔记(Go Web 必备概念)
中间件(Middleware)是 Web 框架里常见的概念。简单理解:在请求进入路由处理函数之前,或者响应返回客户端之前,执行的一段逻辑。日志记录用户认证(JWT)访问控制请求限流跨域处理(CORS)中间件是 Gin 高级功能,但入门阶段掌握它就能写出完整项目。Gin 中间件就是:处理请求的“前置和后置钩子”
2026-05-13 21:23:00
177
2
原创 JWT 入门笔记(Go Web 项目必备认证方案)
前后端分离的用户认证传递安全信息无状态(服务端不存储 Session)可跨域、可跨服务支持加密或签名Header:声明算法和类型Payload:存放用户信息和过期时间Signature:签名,防篡改登录生成 JWT前端存储 token请求带 token后端中间件验证 token这样就完成了无状态认证。
2026-05-13 21:20:39
135
2
原创 Gorm 入门笔记(Go 操作 MySQL 必学)
Gorm 是 Go 语言里最常用的 ORM 框架。对象关系映射简单理解:用 Go 代码操作数据库,而不是自己手写 SQL。这就是 ORM。结构体 ↔ 数据库表你会发现:以后很多数据库操作:不再需要自己写 SQL。db.Find()db.Where()这也是为什么:Gin + Gorm几乎成了标配。
2026-05-11 21:55:40
514
4
原创 Gin 框架第一课:从 0 搞懂 Gin 最基础的路由
Gin 是 Go 语言中的 Web 框架。网站后端API接口Web服务登录接口用户接口商品接口订单接口这些东西:路由 + 请求处理路由本质:URL 和函数的对应关系。访问 /login执行登录逻辑访问 /user执行用户逻辑路由Gin 第一课最核心的内容:其实就一句话:用户访问一个 URL,Gin 会执行对应的函数。})访问 /hello执行函数返回 hello这就是整个 Web 开发最基础的模型。后面所有复杂项目:本质上都是在这个基础上不断扩展。
2026-05-11 21:51:39
439
2
原创 Gin 框架入门笔记
fmt.Println("请求前")c.Next()fmt.Println("请求后")路由参数获取JSON返回中间件路由分组真正开发里:r.GET()r.POST()c.JSON()c.Query()c.Param()把这些掌握以后:基本已经能开始写 Go Web 项目了。
2026-05-10 23:03:41
248
1
空空如也
csdn文章如何增加阅读量
2026-03-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅