Go教程技术文章
-
讲清 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 收藏 -
通过 http.Client.CheckRedirect 按目标主机、请求方法和跳转次数制定重定向策略,区分拒绝跳转与保留 3xx 响应,并处理 301/302/303、307/308 的请求体和响应关闭边界。246 收藏 -
使用 Go net/url 生成签名查询串时,统一 Values.Encode、参数排序、重复键策略和 RawQuery,避免空格、加号与二次编码造成验签不一致。313 收藏 -
Go regexp 通过命名捕获组提取日志字段,配合 SubexpIndex 集中处理索引、匹配失败、可选字段和重复命名,让日志格式调整不再牵动大量 match 数字位置。354 收藏 -
讲清 Go gzip.Writer 写入 HTTP 响应时 Write、Flush、ResponseController.Flush 与 Close 的职责边界,给出按消息边界刷新、处理错误和排查代理缓冲的实现方案。108 收藏 -
Go archive/zip 处理上传压缩包时,不要用 io.ReadAll 一次性读取解压内容。本文用 File.Open、UncompressedSize64、io.CopyN 和额外字节探测,说明如何逐项读取、限制单文件大小,并补上路径与归档总量边界。358 收藏 -
用 Go archive/tar 逐项读取归档,在写盘前校验条目路径,拒绝目录穿越、链接和特殊文件,并限制单项与总展开资源。296 收藏 -
用 Go embed.FS 按 v1、v2 目录嵌入静态资源,结合 fs.Sub、FileServer 和资源清单保持 URL 稳定,并处理版本切换、缓存与回滚边界。145 收藏 -
围绕 Go io/fs.ValidPath 讲清虚拟文件路径的有效边界、Windows 字符处理、FS.Open 契约与测试分层。380 收藏 -
用 filepath.Rel 计算相对目录深度,在 filepath.WalkDir 回调中通过 filepath.SkipDir 截断超出层级的目录子树,并说明错误处理、符号链接和跨平台路径边界。336 收藏 -
围绕 Go os.Open 读取配置的场景,说明如何在打开成功后立即绑定 defer Close,处理读取与解码错误,并避免循环中的文件句柄延迟释放。410 收藏 -
Golang · Go教程 | 1天前 | bytes.Buffer · Go教程 · http.MaxBytesReader Go bytes.Buffer容量上限 Go请求体限制 bytes.Buffer Grow
bytes.Buffer没有可配置的最大容量。本文用受限 Writer 检查累计写入长度,并结合 http.MaxBytesReader 限制 HTTP 请求体,处理预分配、复用和明确超限错误。390 收藏