Go问答技术文章
-
讲清 Go http.CookieJar 中 Domain 为空与显式 Domain 的区别,结合 HostOnly、Path、Secure 和 PublicSuffixList 给出 Cookie 投递范围排查方法。289 收藏 -
Go 的 http.Hijacker 接管连接后,ResponseWriter 已退出标准 HTTP 响应路径。本文解释 HTTP/1.x、HTTP/2、包装器和 ErrHijacked 的边界,并给出切换到 net.Conn 与 bufio.ReadWriter 的写法。288 收藏 -
Go 处理 jsonnull 时,字段缺失、JSON null、空数组和有值数组不能只用 len 判断。本文用最小复现、Nullable 状态和 PATCH 分支说明如何定位空值错误。287 收藏 -
解释 Go sort.Search 返回 len 的真实含义,演示如何用边界检查和候选值比较区分目标不存在、末尾插入与实际命中。286 收藏 -
Golang · Go问答 | 6天前 | 代理 · 环境变量 · 故障排查 · HTTP客户端 · Go问答 · Go http.Transport http.Client ProxyFromEnvironment HTTP_PROXY HTTPS_PROXY NO_PROXY
Go HTTP 客户端代理环境变量不生效,通常不是变量名写错,而是请求没有走 DefaultTransport、自定义 Transport 覆盖了 Proxy,或进程首次解析代理后才修改环境变量。本文给出直接探测、修复和复查方法。282 收藏 -
Go fuzzing 找到失败输入后,怎样从日志、testdata/fuzz 目录和 -run 路径中定位首次失败案例,并把它变成稳定回归测试。282 收藏 -
signal.NotifyContext 返回的 stop 不只是结束 context,它还会注销信号接管并释放关联资源。本文用优雅退出、重复测试和短生命周期任务说明 stop 的调用时机与边界。282 收藏 -
设置 GOPRIVATE 后仍看到 proxy.golang.org 请求,通常是模块路径未匹配、GONOPROXY 覆盖或 GOPROXY 回退造成的。本文按检查、匹配、架构选择和缓存复查四步定位。281 收藏 -
Go base64.CorruptInputError 中的数字是原始输入的零基字节偏移,不是解码结果长度。本文用 errors.As 提取偏移,并说明非法字符、换行、补位和 Strict 模式的排查边界。280 收藏 -
整理 reflect.Value.IsNil 支持的 Kind,解释无效 Value、typed nil 与空切片的差异,并给出带 Kind 白名单的安全封装。277 收藏 -
Go 的 http.Header 用小写字符串调用 Get 也可能成功,因为 Get 会把查询键规范化;但直接用小写键构造 map 时,直接索引与 Get 查找的键并不相同。本文用对比示例拆清这条兼容边界。275 收藏 -
QueryContext 超时并不自动等于连接损坏。本文从 QueryContext、Rows、驱动取消接口和 ErrBadConn 四层判断连接是否还能安全回到连接池。270 收藏 -
runtime.KeepAlive 不是“调用前保活”开关,而是把对象的可达性保证到它所在的位置。本文用系统调用示例说明放错位置为何仍可能提前回收,以及如何把保护边界放在真正的调用之后。270 收藏 -
panicreturn 不是 Go 内置函数名。遇到 panic 后 recover 为空、程序继续崩溃或 error 没有返回时,应从同一 goroutine、defer 直接调用和命名返回值三个位置排查。269 收藏 -
Golang · Go问答 | 5天前 | 性能排查 · HTTP客户端 · Go问答 · MaxIdleConnsPerHost Go连接池 Go transport http.Transport连接复用 HTTP keep-alive
Go http.Transport 默认会缓存连接供后续请求复用,但前提是 Transport 长期复用、响应体正确收尾,并按上游数量配置空闲连接。本文给出 Client、Transport、Body 和 httptrace 的判断方法。268 收藏