Go教程技术文章
-
用 Go log/slog 的 slog.Group 和 Logger.WithGroup 把请求、订单等字段放进稳定命名空间,并理解 TextHandler 与 JSONHandler 的输出差异。367 收藏 -
Go database/sql 复用 sql.Stmt 时,先按 DB、Conn、Tx 区分所有权,再把创建与关闭绑定到同一生命周期;文章给出初始化复用、Rows清理、事务执行和停机收尾的实用写法。465 收藏 -
讲清 Go database/sql 事务提交失败后的三类状态,给出整笔事务重试、request_id 幂等和提交未知状态查询的实现边界。429 收藏 -
Go使用database/sql遍历Rows时,循环结束不代表读取完整。本文用一个列表函数说明如何同时处理Scan、Close和Rows.Err,避免把部分结果误当成成功响应。203 收藏 -
Go database/sql 查询可空字符串时,使用 sql.NullString 同时保留 String 与 Valid,区分数据库 NULL、空字符串和普通文本;本文进一步说明 JSON 输出、写回参数与错误边界。501 收藏 -
用 Go crypto/rand 生成固定长度随机字节,再以 RawURLEncoding 转成 URL 安全令牌;同时说明 TTL、一次性消费和 Go 1.24 rand.Text 的适用边界。323 收藏 -
用Go x509.VerifyOptions校验证书时,Roots、Intermediates和DNSName分别承担什么职责?本文给出CertPool组装方法、常见错误排查顺序和吊销检查边界。309 收藏 -
用 Go tls.Config.GetCertificate 根据 SNI 动态选择证书,覆盖精确匹配、通配符、默认回退、并发读取与热更新边界。265 收藏 -
用 Go multipart.Reader 按字段名设置上传上限,借助 limit+1 字节检测超量,并清理临时文件与请求级资源。456 收藏 -
讲清 Go http.ServeContent 中 modtime 的真实作用:如何配合 Range、If-Range 和 Last-Modified 返回稳定的部分内容响应,并避开 time.Now() 造成的缓存问题。253 收藏 -
讲清 Go httptest.NewRequest 如何构造请求体、设置 ContentLength,并用 Handler 回归测试覆盖已知长度、未知长度和空请求体边界。260 收藏 -
Go多用户HTTP客户端不要共享同一个CookieJar。本文从串线症状出发,演示按用户创建独立cookiejar.Jar和http.Client,并说明并发、认证与生命周期边界。248 收藏 -
围绕 Go http.Transport 说明 IdleConnTimeout、MaxIdleConns 和 MaxIdleConnsPerHost 的作用,区分客户端空闲回收与服务端主动关闭,并给出可复用 Transport 的配置示例和排查清单。185 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · net/http · CheckRedirect Go http.Client重定向 ErrUseLastResponse HTTP跳转策略
通过 http.Client.CheckRedirect 按目标主机、请求方法和跳转次数制定重定向策略,区分拒绝跳转与保留 3xx 响应,并处理 301/302/303、307/308 的请求体和响应关闭边界。246 收藏 -
使用 Go net/url 生成签名查询串时,统一 Values.Encode、参数排序、重复键策略和 RawQuery,避免空格、加号与二次编码造成验签不一致。313 收藏