Go问答技术文章
-
Golang · Go问答 | 1个月前 | 网络编程 · HTTP · Go问答 · Go HTTP代理 http.Transport ProxyFromEnvironment HTTP_PROXY
Go 的 http.Get 并不是绕过环境配置直接联网:DefaultClient 会使用 DefaultTransport,而 DefaultTransport 默认把 Proxy 绑定到 ProxyFromEnvironment。本文沿着调用链解释 HTTP_PROXY、HTTPS_PROXY、NO_PROXY 和 localhost 的关系,并给出关闭或显式指定代理的写法。282 收藏 -
Golang · Go问答 | 3星期前 | 代理 · 环境变量 · 故障排查 · 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 收藏 -
在 Go 泛型约束中,~T 表示底层类型为 T 的全部类型,因此既能接受预声明类型,也能接受以它为底层类型的自定义类型;但方法仍须在约束中显式声明。282 收藏 -
设置 GOPRIVATE 后仍看到 proxy.golang.org 请求,通常是模块路径未匹配、GONOPROXY 覆盖或 GOPROXY 回退造成的。本文按检查、匹配、架构选择和缓存复查四步定位。281 收藏 -
Go 1.24 引入的 os.Root 能把文件操作限制在指定目录内,但它不是忽略符号链接的黑盒。本文用 OpenRoot、Root.Open 与 Root.FS 拆解路径越界、目录链接和 DirFS 的边界。280 收藏 -
go test 会把测试实际查询过的环境变量纳入缓存输入。变量值变化,或从未设置变为空字符串,通常都会让下一次测试重新执行;用 gocachetest 可直接看出原因。280 收藏 -
Go base64.CorruptInputError 中的数字是原始输入的零基字节偏移,不是解码结果长度。本文用 errors.As 提取偏移,并说明非法字符、换行、补位和 Strict 模式的排查边界。280 收藏 -
Go 1.27 的 simd 与 simd/archsimd 仍由 GOEXPERIMENT=simd 控制。本文说明启用门槛、两层 API 差异、可移植层的硬件与纯 Go 回退,以及如何用 build tag、GOARCH 和 CPU 特性检查保留稳定的标量路径。280 收藏 -
线上接口偶发慢几百毫秒,等问题出现后再启动完整 trace 往往已经晚了。Go 1.25 的 runtime/trace.FlightRecorder 会把最近一段运行轨迹保存在内存环形缓冲区,异常触发时再导出,本文说明 MinAge、MaxBytes、Start、WriteTo 的最小用法和生产边界。279 收藏 -
用 Go testing/fstest 和 fstest.MapFS 区分符号链接自身、链接目标与 Open 跟随读取,掌握 TestFS、Lstat、ReadLink 的测试边界。279 收藏 -
围绕 Go url.Parse 拒绝控制字符的报错,说明首尾空白清洗、内部控制字符拒绝、协议限制,以及 url.Values 和 PathEscape 的组件化编码边界。279 收藏 -
并发处理一批任务时只返回第一个错误,往往会掩盖其他失败项。本文用 Go errors.Join 组合多个错误,比较首错、聚合错误和带任务标识的结果汇总,给出可验证的选择边界。278 收藏 -
Go 服务偶发变慢时,runtime/metrics 能把 GC 频率、暂停和堆目标放到同一组可采样指标里。本文从一次延迟抖动开始,说明如何选指标、对齐时间窗口,并排除把正常回收误判成 GC 压力。278 收藏