Go语言技术文章
-
说明 Go net/url.URL 的缺省字段、查询空值与业务补丁的区别,给出保持、设置、删除三态示例,并处理 ForceQuery、Fragment 和编码提示的边界。331 收藏 -
Go net/http.Server.MaxHeaderBytes 用来限制服务器解析请求头时读取的字节数,包含请求行但不限制请求体。本文说明零值默认值、显式配置、ReadHeaderTimeout 与 MaxBytesReader 的边界。299 收藏 -
Go 的 ed25519.PrivateKey.Public 会返回对应的 crypto.PublicKey。本文说明如何把它安全地断言为 ed25519.PublicKey,理解 64 字节私钥中的公钥后缀,并区分公钥派生、种子恢复与重新生成密钥。264 收藏 -
Go net/http.Client 减少临时分配的关键不是盲目复用所有对象,而是复用 Client 和 Transport、缩短编码缓冲生命周期、正确关闭响应体,并用 benchmem 确认收益。215 收藏 -
用一个可复用的 http.Client 处理 Transport、重定向、Cookie 和 Timeout 四类可选配置,先看零值行为,再按失败边界设置策略和资源回收。291 收藏 -
Golang · Go教程 | 3天前 | 网络编程 · 标准库 · Go教程 · HTTP客户端 · Go 错误处理 errors.Is errors.As net/http.Client Client.Do
Go net/http.Client 的 error、HTTP 状态码和响应体读取错误属于不同阶段。本文用 %w 保留原始 cause,用 url.Error 和自定义 HTTPError 承载上下文,并说明 Body 关闭、读取、重试边界。454 收藏 -
Go crypto/aes.NewCipher 只接受 16、24 或 32 字节密钥,分别对应 AES-128、AES-192 和 AES-256。本文说明如何提前判断长度、用 KeySizeError 读取错误,并区分密钥长度与 AES 分组大小。156 收藏 -
让 json.Encoder 直接写最终 Writer,减少应用层字节和字符串往返;需要暂存时复用 Buffer,同时处理容量保留、Bytes 借用、并发和错误边界,不承诺零分配。242 收藏 -
Go json.Encoder 默认会把 JSON 字符串中的 &, <, > 写成 Unicode 转义。本文说明 SetEscapeHTML(false) 的用法、HTML 安全边界,以及 Encoder、Marshal 和 HTMLEscape 的区别。213 收藏 -
同时读取 Example.Output 与 EmptyOutput,区分显式空输出、未声明输出和非空预期文本。通过带注释的 AST 静态抽取示例,说明记录字段和运行证据的边界。145 收藏 -
Go encoding/xml 默认按严格 XML 解析。本文用 xml.Decoder 的 Strict、AutoClose、HTMLAutoClose 和 HTMLEntity 处理缺少结束标签的 HTML 风格片段,并说明适用边界。337 收藏 -
Go encoding/xml.Decoder 的 Token、Decode 和 DecodeElement 都通过 error 报告解析问题。本文说明如何区分 io.EOF 与真实失败,用 %w 保留错误链,并结合 InputPos、InputOffset 和受控原始缓存补齐排查上下文。493 收藏 -
Redis SLOWLOG GET 默认读取最近十条慢日志,每条记录包含唯一 ID、时间戳、微秒级执行耗时和命令参数。本文说明 count、参数截断、原始参数总数、客户端信息与增量处理边界。312 收藏 -
Redis XDELEX 的 ACKED 选项只删除已经被全部消费组确认的 Stream 条目。本文拆解 IDS 参数、KEEPREF/DELREF/ACKED 的引用语义,并说明返回值 1、2、-1 如何判断删除结果。221 收藏 -
Redis XINFO STREAM 先给出 Stream 的长度、首尾消息和消费组摘要;加上 FULL 后还能看到条目、消费组、消费者与 PEL 明细。本文说明 COUNT 的默认值和 0 的边界,并给出安全的诊断读取方式。281 收藏