Go问答技术文章
-
url.PathEscape 只负责把一个值编码成安全的 URL 路径段,解析后的 URL.Path 仍会呈现解码结果。本文用可复用的 Go 示例区分 Path、RawPath 与 EscapedPath,解决包含斜杠的路径参数看起来被错误解码的问题。285 收藏 -
Go TLS 握手失败时,先用显式握手固定错误阶段,再沿错误链识别证书校验问题,并核对 MinVersion、MaxVersion 与最终 ConnectionState.Version,从而区分身份校验失败和协议版本不兼容。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/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 收藏 -
Go go-vcard 用 N 保存可拆分的结构化姓名,用 FN 保存面向用户的显示姓名。本文通过读取、写入和多值处理示例说明两者的区别与边界。284 收藏 -
解释Kong passthrough为何停止继续解析后续标志,使用命令级透传示例区分外层配置、下游参数以及argv与shell原文。284 收藏 -
Go reflect 修改字段时 CanSet 为 false,通常是反射值不可寻址、忘记从指针 Elem,或字段未导出。本文用结构体和 map 对照示例说明安全赋值路径与排查边界。284 收藏 -
ELF 的 NOBITS 节可以有非零逻辑 Size,却没有对应文件内容。本文给出按节类型分支的 Go 读取器,区分正常空节、无文件内容与读取失败,并说明大小预算、资源关闭及旧代码迁移注意事项。284 收藏 -
Go database/sql 的 PingContext 超时不能只靠调大时间解决。本文用有限上下文拆分调用取消、驱动失活连接和配置错误,并说明探活与连接池后续查询之间的边界。283 收藏 -
Go groot 中的 ROOT Directory 是文件内部的对象组织结构,不是操作系统目录。本文用 groot.Open、Keys 和 Get 拆开两层边界,并说明怎样用键名、类名和标题复查读取结果。283 收藏 -
Go mime.WordEncoder.Encode 会把需要编码的中文主题或显示名转换成 RFC 2047 encoded-word;ASCII 普通文本则保持原样。本文说明 QEncoding、BEncoding、字符集和邮件头组装边界。283 收藏 -
database/sql 的 Scan 只会处理文档列出的常见目标类型或 Scanner。本文用自定义金额结构体构造最小复现,再通过 Scanner 处理 int64、[]byte 和 NULL,定位并修复类型转换错误。283 收藏