Go教程技术文章
-
Go debug/pe.File.COFFSymbolReadSectionDefAux 用于读取节定义符号后的 COFF 辅助记录。本文从 COFFSymbols 索引、SectionNumber 与辅助数量出发,给出资源安全的读取示例,并说明如何结合 IMAGE_SCN_LNK_COMDAT 解释 Selection 字段。178 收藏 -
Go net.JoinHostPort 用于把主机和端口拼成网络地址。本文说明它为什么会给 IPv6 主机自动加方括号,并覆盖域名、IPv4、空主机、zone 标识和 SplitHostPort 配合时的实用边界。434 收藏 -
从字符串排序迁移到 netip.Addr.Compare:本文用 ParseAddr 和 sort.SliceStable 对 IPv4、IPv6 地址做稳定排序,并说明非法输入、相同地址和 IPv6 zone 的边界。425 收藏 -
Go 的 httputil.ReverseProxy.Rewrite 适合把入站请求改造成可控的出站请求。本文从一个小型反向代理开始,讲清 SetURL、Host、X-Forwarded-*、查询参数和 Director 迁移时最容易忽略的边界。476 收藏 -
Go netip.Addr.Is4 直接判断 Addr 是否为原生 IPv4;IPv4 映射 IPv6 会返回 false,需要先用 Is4In6 识别,或用 Unmap 归一化后再判断。469 收藏 -
Go netip.Prefix.String 返回 CIDR 文本,但 PrefixFrom 可能保留主机位。本文说明 String、Masked、IsValid 与 MarshalText 的边界和实用写法。382 收藏 -
Go 中使用 sha256.New224 计算 SHA-224 摘要时,核心是通过 hash.Hash 分段写入数据,再读取 28 字节结果。本文说明流式写法、文件输入、Sum224 的选择,以及摘要长度和十六进制输出的排查方法。469 收藏 -
Go 反射中调用 Value.Addr 前,必须先确认 Value 是否可寻址。本文用 CanAddr 串起普通值、指针解引用、切片元素、结构体字段与 map 索引的边界,并说明它与 CanSet、CanInterface 的区别。318 收藏 -
Go 1.22 起,ServeMux 可以在路由模式中声明路径通配符,再用 Request.PathValue 读取变量。本文用最小示例说明单段、多段路径变量和空值边界。393 收藏 -
Go tls.Config.CurvePreferences 控制 TLS 握手允许使用的密钥交换组,但不会按切片顺序强制选择。本文说明显式配置、Go 1.24/1.26 默认变化和 ConnectionState 结果判断。323 收藏 -
说明Go http.Protocols的三类协议开关,用独立服务端和客户端示例配置HTTP/1与TLS HTTP/2,并解释明文HTTP/2及代理连接边界。432 收藏 -
讲清 Go GetConfigForClient 返回配置后的会话票据密钥继承、SetSessionTicketKeys 轮换和会话恢复校验边界,给出可落地的配置示例与上线清单。223 收藏 -
用自建 x509.CertPool 配置 VerifyOptions.Roots,只信任指定根证书;同时区分 Intermediates、DNSName 和 KeyUsages,避免把系统根或中间证书误当成信任边界。391 收藏 -
用Go ConstantTimeCompare比较固定长度密钥材料,说明整数返回值、长度提前返回、差异位置样本和性能观察的适用边界。403 收藏 -
Go crypto/sha3 提供了直接计算和流式计算 SHA3-256 的两种入口。本文从 Sum256、New256、固定长度摘要和十六进制表示入手,说明如何处理大输入、比较摘要以及避免把哈希误当成加密。284 收藏