Go教程技术文章
-
Golang · Go教程 | 3小时前 | go · web安全 · net/http · CSRF · Go 1.25 · Go csrf Go 1.25 http.CrossOriginProtection 跨源请求
Go 1.25 的 net/http 新增 CrossOriginProtection,本文从浏览器请求边界、Handler 接入、可信来源配置和 403 验收入手,拆解它适合解决什么问题以及哪些请求不能误放行。143 收藏 -
Golang · Go教程 | 2星期前 | HTTP · go · 浏览器 · 前端数据上报 · Go Beacon API navigator.sendBeacon 页面关闭上报 Go HTTP 接收 Beacon keepalive fetch
页面关闭、切换标签页或手机锁屏时,普通 fetch 可能来不及把埋点送到服务端。本文用 Go 接收 navigator.sendBeacon 的 POST 请求,拆开 Content-Type、204 响应、队列大小与 keepalive fetch 兜底边界,给出可验证的处理方式。140 收藏 -
用一个可复现的分片读取场景,说明 os.File.ReadAt 为什么适合并发定位读取,如何用 io.SectionReader 限定区间,以及短读、EOF 和缓冲区复用的验收边界。139 收藏 -
Go 1.21 引入的 clear 内置函数适合批量清空 map,但它并不等于释放底层容量。本文用缓存复用、重新分配和基准测试说明三种清理策略的边界。134 收藏 -
Go 的 iter.Pull 把 push-style 迭代器变成 next/stop 拉取接口,但提前结束时必须调用 stop 让 yield 协程收尾。本文用资源清理、重复 stop 和测试替身说明它的生命周期与并发边界。133 收藏 -
用 Go crypto/rand 读取固定长度随机字节时,区分 Reader 的短读语义、io.ReadFull 的完整读取保证与错误传播边界,并用可控测试替身复核实现。129 收藏 -
从切片别名、append 扩容和底层数组保留三个角度,说明 Go slices.Clone 的适用边界,并用可运行示例验证复制后的修改、nil 语义与内存释放判断。126 收藏 -
Golang · Go教程 | 1天前 | HTTP · go · 连接池 · 性能排查 · net/http · http.server 连接泄漏 Go ConnState StateIdle HTTP长连接
用 http.Server.ConnState 观察 Go HTTP 连接从 StateNew 到 StateClosed 的状态变化,区分慢请求、Keep-Alive 和未收尾连接,并给出计数、超时与复核方法。125 收藏 -
用一个配置加载器看懂 Go 一次性初始化的惰性加载、错误复用和并发安全边界,给出可验证的最小实现与避坑清单。125 收藏 -
Go 服务突然报 too many open files 时,先用 /proc/fd 和 lsof 判断文件描述符消耗,再检查 HTTP 响应体关闭、连接复用和 ulimit 配置,最后用指标与回滚手段确认修复有效。119 收藏 -
Go 的 map range 顺序没有稳定保证,同一张 map 也不能把第一次遍历结果当成下一次的顺序。本文用一个最小示例说明随机化边界,并给出测试、日志和接口输出需要排序时的可靠写法。119 收藏 -
Go 泛型约束不是把类型随便放进尖括号,而是用类型集合明确允许哪些类型,并把可比较、可排序等操作边界交给编译器检查。本文用可比较键和值排序两个例子说明约束写法、~ 底层类型和常见误区。111 收藏 -
Go 的 http.ServeContent 已经处理了文件下载中的 Range 和 If-Modified-Since,但 ETag 需要应用自己补上。本文用一个小型下载接口拆开请求头、响应状态与验收方式,避免把 200、206、304 混成一种成功。111 收藏 -
Go database/sql 查询循环结束并不等于读取完整成功,本文从连接中断、Rows.Close 和事务提交三个现场拆开 Rows.Err 的检查边界,并给出可复现的代码与验收方法。102 收藏