Go问答技术文章
-
Go TLS 中 InsecureSkipVerify 只影响客户端验证服务端证书链和主机名,服务端客户端证书校验应看 ClientAuth 与 ClientCAs。298 收藏 -
Go 的 http.Hijacker 接管连接后,ResponseWriter 已退出标准 HTTP 响应路径。本文解释 HTTP/1.x、HTTP/2、包装器和 ErrHijacked 的边界,并给出切换到 net.Conn 与 bufio.ReadWriter 的写法。288 收藏 -
Go ResponseWriter 的普通 Header 要在 WriteHeader 或 Write 之前设置;一旦响应头提交,后续修改通常不会生效。本文说明提交时点、分支写法和 Trailer 边界。170 收藏 -
Go HTTP 服务端选择 ReadHeaderTimeout 还是 ReadTimeout,关键看是否要限制请求体的整体读取时间。本文按请求阶段、接口类型和回归场景拆开比较,并给出从整请求超时迁移到分层配置的清单。120 收藏 -
Golang · Go问答 | 2天前 | 连接池 · 性能排查 · HTTP客户端 · Go问答 · Go net/http Transport HTTP连接复用 DisableKeepAlives TCP keepalive
Go 的 Transport.DisableKeepAlives 控制 HTTP keep-alive 与连接复用,不等于 TCP keepalive。本文用请求序列、连接池边界和可观察代码说明关闭后的影响,以及适合关闭和保持默认值的场景。115 收藏 -
http.Client.Timeout 限制的是一次请求从连接到读取响应体的总时长,不会替调用方管理 Response.Body。本文区分 Close、读到 EOF、连接复用和慢流场景,给出可直接套用的清理写法。352 收藏 -
Go HTTP 请求取消后,Transport 如何处理连接、请求体、响应体和错误?本文按 RoundTrip 的实际边界解释 context.Canceled、超时与连接复用。150 收藏 -
time.Now 返回的时间可能同时包含墙上时钟和单调时钟,但 time.Time.Round 是墙上时间计算,会从结果中剥离单调读数。本文按比较、耗时、序列化和 map key 场景说明怎么判断与修复。397 收藏 -
time.AfterFunc 的 Timer.Reset 返回 false,只说明旧定时器已经到期或停止,不代表旧回调已经结束。本文用 started/finished 信号说明如何判断旧回调状态,并避免新旧回调并发访问共享数据。297 收藏 -
Go 的 time.Ticker 不是保存每次节拍的事件队列。本文解释接收方变慢时 tick 为什么会被丢弃,并给出按时间补偿、计数和可靠事件记录的选择方法。455 收藏 -
解释 Go 的 time.AfterFunc 中 Timer.Stop 返回 false 的准确含义,区分回调已启动与已完成,并给出用 started、done channel 显式协调的安全写法。235 收藏 -
context.WithoutCancel 会保留父级值访问,却主动切断 Deadline、Done、Err 和 Cause。本文用最小示例说明原因,并给出后台任务重新建立独立超时的写法。305 收藏 -
Golang · Go问答 | 2天前 | 超时 · 错误处理 · go · Context · Go context.Err context.DeadlineExceeded context.WithDeadline context.Canceled
Go context.WithDeadline 提前调用 cancel 时,ctx.Err() 返回 context.Canceled;只有 deadline 先到期才返回 context.DeadlineExceeded。本文用可复现代码区分主动取消、父级取消和真正超时。453 收藏 -
Golang · Go问答 | 2天前 | go · Context · Go问答 · context.Cause Go context.WithCancelCause CancelCauseFunc Go 上下文取消原因 Go 下游读取取消原因
讲清 Go context.WithCancelCause 返回的 CancelCauseFunc 如何把具体错误传给下游,以及 context.Cause 与 ctx.Err 的区别、取消顺序和资源清理边界。338 收藏 -
goroutine 返回不会自动通知其他等待者。本文对比 close(done)、sync.Cond.Broadcast 和 sync.WaitGroup,说明如何发布终态、保护共享状态并避免等待者永久阻塞。188 收藏