Go教程技术文章
-
Go 的 html/template 会按输出上下文自动转义普通字符串;只有经过明确 allowlist、来源受控的片段,才应在渲染前转换为 template.HTML。本文用一个小页面说明两者的边界、代码写法和验收清单。390 收藏 -
Go 的 archive/zip 中,File.Open 返回的是带解压与校验边界的 io.ReadCloser。读取成员后应关闭它;如果外层使用 OpenReader 打开压缩包,还要另行关闭外层 ReadCloser。390 收藏 -
Go filepath.Match 的方括号表示单字符类,可用范围和 ^ 排除规则匹配文件名;本文同时说明整串匹配、转义、Windows 分隔符以及 ErrBadPattern 的处理方式。390 收藏 -
Golang · Go教程 | 1星期前 | bytes.Buffer · Go教程 · http.MaxBytesReader Go bytes.Buffer容量上限 Go请求体限制 bytes.Buffer Grow
bytes.Buffer没有可配置的最大容量。本文用受限 Writer 检查累计写入长度,并结合 http.MaxBytesReader 限制 HTTP 请求体,处理预分配、复用和明确超限错误。390 收藏 -
Go 的 html/template 会按输出上下文自动转义。本文解释为什么不能直接拼 HTML 字符串,以及如何划分普通文本、可信片段和回归检查边界。388 收藏 -
Go 的 testing.T.Setenv 会修改整个测试进程的环境变量。本文说明它为何不能用于并行测试,并给出串行清理、显式配置和子进程隔离的选择方法。388 收藏 -
Golang · Go教程 | 2星期前 | Cookie · Go教程 · net/http · HTTP客户端 · Go cookies http.CookieJar SetCookies Cookie顺序
区分 Response.Cookies、Jar.SetCookies 与 Jar.Cookies 三条路径,按 URL 作用域判断 Go http.CookieJar 的可发送 Cookie,并解释同名 Cookie 按最长 Path、最早创建时间返回的顺序规则。388 收藏 -
用一个可运行的 net/http 示例说明 HandlerFunc 如何把普通函数接入 ServeMux,再用中间件包装请求日志与响应头,厘清组合顺序、闭包捕获和错误边界。387 收藏 -
Go 校验 HMAC 签名时,不要把十六进制或 Base64 文本当普通字符串比较。本文说明如何重新计算 MAC、解码签名并使用 hmac.Equal 比较,同时处理编码错误、长度边界和请求鉴权中的常见误区。387 收藏 -
用公共事件信封承载 Kind 与 json.RawMessage,先解析公共字段,再把动态 payload 分流到具体 Go 结构体,并处理未知类型、空载荷和兼容性边界。387 收藏 -
Go os.Link 返回错误时,不要只看字符串。通过 LinkError 和底层 errno 区分跨文件系统、权限、目标冲突与文件系统不支持,再决定复制或符号链接兜底。386 收藏 -
用 Go archive/zip 按条目读取大文件,先检查目录元数据,再用 File.Open 和 io.CopyBuffer 流式处理,同时区分文件名编码、路径安全、压缩算法和校验错误。385 收藏 -
Golang · Go教程 | 1星期前 | 切片 · 数据结构 · 标准库 · 泛型 · Go教程 · Go slices稳定去重 Go切片去重 Go保留顺序去重 Go泛型切片处理 Go slices包
使用 Go 的 slices 与泛型思路处理切片全局去重:保留第一次出现的值和原始顺序,同时说明 slices.Compact 的边界、不可比较元素和复杂度取舍。385 收藏 -
讲清 Go http.Transport 如何使用 ProxyFromEnvironment 读取 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY,并排查内网域名、localhost、回环地址与端口匹配边界。383 收藏 -
Go html/template 会按 HTML、属性和 URL 上下文自动转义用户值。本文用固定属性模板说明 title、data-*、href 的安全写法,解释危险协议、事件属性和 template.HTML 的信任边界。383 收藏