Go语言技术文章
-
Go TLS 按 IP 校验证书失败时,关键不是继续改 CommonName,而是读取证书的 IPAddresses SAN。本文用一段最小 Go 代码定位缺失、错配和校验输入问题。453 收藏 -
Go 的 gzip.Writer 会把 Header.ModTime 写进 gzip 头部 MTIME。固定 UTC 秒级时间,并在 Write、Flush 或 Close 之前设置,才能避免归档因当前时间变化而产生不稳定字节。211 收藏 -
Go TLS 中 InsecureSkipVerify 只影响客户端验证服务端证书链和主机名,服务端客户端证书校验应看 ClientAuth 与 ClientCAs。298 收藏 -
Go 遍历 tar 归档时,不要只看文件名后缀,而应读取 tar.Header.Typeflag。本文用一套最小遍历代码说明如何识别目录、符号链接和硬链接,并处理 Linkname、Read、io.EOF 及路径安全边界。481 收藏 -
Go 的 http.Hijacker 接管连接后,ResponseWriter 已退出标准 HTTP 响应路径。本文解释 HTTP/1.x、HTTP/2、包装器和 ErrHijacked 的边界,并给出切换到 net.Conn 与 bufio.ReadWriter 的写法。288 收藏 -
Go archive/zip.Reader.Open 读取嵌套目录时,路径要使用 ZIP 内部的斜杠分隔名;本文用完整示例说明目录判断、资源关闭和常见错误排查。120 收藏 -
Go ResponseWriter 的普通 Header 要在 WriteHeader 或 Write 之前设置;一旦响应头提交,后续修改通常不会生效。本文说明提交时点、分支写法和 Trailer 边界。170 收藏 -
Go 导出 CSV 时,Writer.UseCRLF 决定记录行尾是否使用回车加换行。本文从表格软件兼容、字段引用、Flush 与字节检查几个环节说明如何稳定落地。221 收藏 -
Go HTTP 服务端选择 ReadHeaderTimeout 还是 ReadTimeout,关键看是否要限制请求体的整体读取时间。本文按请求阶段、接口类型和回归场景拆开比较,并给出从整请求超时迁移到分层配置的清单。120 收藏 -
解释 Go encoding/xml Decoder.Strict=false 对缺失结束标签、异常实体和命名空间的实际影响,并说明 AutoClose、Entity 的配置边界与生产选择。447 收藏 -
Golang · Go问答 | 3天前 | 连接池 · 性能排查 · HTTP客户端 · Go问答 · Go net/http Transport HTTP连接复用 DisableKeepAlives TCP keepalive
Go 的 Transport.DisableKeepAlives 控制 HTTP keep-alive 与连接复用,不等于 TCP keepalive。本文用请求序列、连接池边界和可观察代码说明关闭后的影响,以及适合关闭和保持默认值的场景。115 收藏 -
用 Go encoding/json 的 json.RawMessage 先读取联合字段判别值,再将 payload 延迟解析到具体结构体,并区分未知类型、null、格式错误和字段类型错误。369 收藏 -
http.Client.Timeout 限制的是一次请求从连接到读取响应体的总时长,不会替调用方管理 Response.Body。本文区分 Close、读到 EOF、连接复用和慢流场景,给出可直接套用的清理写法。352 收藏 -
Go 的 DisallowUnknownFields 适合封闭、可控的 JSON 写接口,用来尽早发现拼写错误;面对第三方 webhook 和可扩展 payload 时应谨慎开启。125 收藏 -
Go HTTP 请求取消后,Transport 如何处理连接、请求体、响应体和错误?本文按 RoundTrip 的实际边界解释 context.Canceled、超时与连接复用。150 收藏