Go语言技术文章
-
Go pprof 火焰图中占比最高的函数不一定是最佳优化点。本文结合 flat、cum、调用路径和业务基线,说明如何判断真正值得优化的 CPU 热点并安全复测。282 收藏 -
CPU Profile 只能定位 CPU 采样热点,不能单独证明优化收益。本文用固定工作负载、重复 Benchmark、benchstat 与前后 Profile 对比建立验证链,避免单次数据、环境漂移和热点转移造成误判。474 收藏 -
Go TLS 热更新证书不会让已经完成握手的旧长连接立即失效;新证书主要作用于后续握手,而恢复会话还有票据边界。本文按连接生命周期说明原子更新、失败回退、会话恢复与连接排空策略。209 收藏 -
Go crypto/tls 中,MinVersion 和 MaxVersion 控制协议版本,CipherSuites 只影响 TLS 1.0–1.2。本文给出兼顾 TLS 1.2、TLS 1.3 与旧客户端的配置方法、选型表和排错边界。427 收藏 -
Golang · Go问答 | 1星期前 | 网络编程 · https · Go问答 · tls Go 证书校验 RootCAs VerifyConnection InsecureSkipVerify
Go 的 InsecureSkipVerify 会跳过服务端证书链和主机名校验,短期能绕过握手错误,却把中间人风险带进连接。本文按证书链、私有 CA、ServerName 与 VerifyConnection 的职责,给出更安全的替代方案和上线检查清单。125 收藏 -
本文用 tls.Config.GetCertificate 与 atomic.Pointer 构建 Go HTTPS 证书热更新:监听端口持续运行,SIGHUP 触发加载,新证书通过密钥、有效期和主机名检查后才原子替换;失败保留旧证书,并说明既有连接、SNI、多证书和上线观测边界。243 收藏 -
Go 客户端提示证书主机名不匹配时,证书可能仍在有效期内且签发链可信。本文拆解实际校验名、DNS/IP SAN、Common Name、通配符、SNI 与代理选证书,并给出安全诊断程序和固定 IP 拨号的正确配置。180 收藏 -
Go 内部 HTTPS 服务使用自建 CA 时,不要把 InsecureSkipVerify 设为 true。本文用 SystemCertPool 与 AppendCertsFromPEM 合并信任根,配置 RootCAs,保留主机名校验,并整理证书 SAN、PEM 解析和部署路径的排查边界。332 收藏 -
Go html/template 会按 HTML、URL 和 JavaScript 上下文自动转义,动态属性出现 #ZgotmplZ 往往是安全保护而非模板损坏。本文用最小示例说明如何定位上下文、改用数据驱动和控制可信类型边界。176 收藏 -
Go 多层模板迁移到 embed.FS 后,可在启动期解析公共布局,再为每个页面 Clone 独立模板集合并覆盖 content 块。本文给出目录结构、完整渲染器、变更风险与回归清单,避免工作目录依赖和同名定义串页。245 收藏 -
Go 模板遇到缺失数据时可继续输出、返回元素零值或立即报错。本文解释 missingkey 三种策略、map 与 struct 的边界,并给出严格渲染、缓冲输出和表驱动测试方案。 223 收藏 -
围绕 Go html/template 的函数注册、模板解析和数据执行三个阶段,给出可复制的错误处理写法,说明 ParseFS、ExecuteTemplate、missingkey 与 HTML 转义边界。447 收藏 -
从输出目标、上下文转义、危险 URL 和 template.HTML 信任边界对比 Go 的 html/template 与 text/template,给出迁移和选型清单。245 收藏 -
用 Go 的 html/template 生成 HTML 邮件,演示正文、属性和 URL 上下文的自动转义,并说明 template.HTML 只适用于可信片段。207 收藏 -
Go 进程内的反射缓存应优先直接使用 reflect.Type 做键,因为 Type 可比较并表示精确类型身份,而 Type.String 与名称并不保证唯一。本文从错误命中复盘出发,说明指针归一化、泛型实例、匿名类型及跨进程模式键的取舍。194 收藏