Go语言技术文章
-
Go TLS 握手失败时,先用显式握手固定错误阶段,再沿错误链识别证书校验问题,并核对 MinVersion、MaxVersion 与最终 ConnectionState.Version,从而区分身份校验失败和协议版本不兼容。284 收藏 -
Go netip.Addr.UnmarshalText 可以把配置中的 IPv4、IPv6 文本解析成结构化地址。本文说明空文本、非法输入、IsValid 校验、IPv6 区域标识以及配置结构体接入方式。284 收藏 -
GOPRIVATE只声明私有模块范围,不提供仓库凭据。本文通过直连仓库和内部代理两套临时配置,说明代理、公共校验数据库与认证的独立边界,并归纳CI和缓存相关误区。284 收藏 -
Go 的 url.Values 用 Add 保存重复查询参数,Encode 按键排序并保留同键值顺序。本文用可复用的代码说明 Set、Add、Get 和 RawQuery 的边界。284 收藏 -
用 Go hex.NewDecoder 把十六进制字符流包装成 io.Reader,说明 io.ReadAll、分块读取、奇数长度和非法字符的处理方式。284 收藏 -
Golang · Go问答 | 2星期前 | TLS · net/http · Go问答 · Go net/http crypto/tls http/2 net.Conn ALPN ConnectionState
Go 1.27 支持 net/http 从用户提供的 net.Conn 读取 TLS ALPN 状态。本文说明自定义 DialTLSContext 包装连接时如何保留 ConnectionState,并区分握手未完成、协议未协商和 HTTP/2 未尝试三类问题。284 收藏 -
html/template 的 Execute 返回错误时,Writer 里可能已经存在部分 HTML。本文说明执行错误与写入错误的区别,并给出用 bytes.Buffer 先渲染、成功后再提交 HTTP 响应的稳妥写法,同时说明流式输出何时只能接受部分结果。284 收藏 -
Go x509 的 SSL_CERT_FILE 没有生效时,先检查它是否指向单个 PEM 文件,再排除自定义 RootCAs、平台证书 API 和 Go 版本差异。本文按参数形态拆解环境变量未加载证书的常见原因。284 收藏 -
Go crypto/sha3 提供了直接计算和流式计算 SHA3-256 的两种入口。本文从 Sum256、New256、固定长度摘要和十六进制表示入手,说明如何处理大输入、比较摘要以及避免把哈希误当成加密。284 收藏 -
解释 go/types.Info.Defs 出现 nil 对象的正常语义与类型检查不完整边界,区分 package 名称、空白标识符、类型 switch 临时变量和重复声明,并给出 Defs/Uses 的安全诊断方式。284 收藏 -
Go map 不是并发容器,多个 goroutine 无同步地读写同一个 map 时可能触发 concurrent map read and map write 或 concurrent map writes。本文说明根因,并比较普通 map 加 RWMutex、sync.Map 与 channel 所有权模型的适用边界。284 收藏 -
用 Cobra 的 MarkFlagsRequiredTogether 约束 username 和 password 成对出现,并说明 flag 定义位置、RunE 执行边界和常见配置误区。284 收藏 -
Go go-vcard 用 N 保存可拆分的结构化姓名,用 FN 保存面向用户的显示姓名。本文通过读取、写入和多值处理示例说明两者的区别与边界。284 收藏 -
解释Kong passthrough为何停止继续解析后续标志,使用命令级透传示例区分外层配置、下游参数以及argv与shell原文。284 收藏 -
Go reflect 修改字段时 CanSet 为 false,通常是反射值不可寻址、忘记从指针 Elem,或字段未导出。本文用结构体和 map 对照示例说明安全赋值路径与排查边界。284 收藏