Go教程技术文章
-
Go 的 url.JoinPath 能在拼接 URL 路径时清理点号段和重复斜杠。本文通过后端接口地址实验讲清函数与方法差异、尾斜杠规则、路径转义和安全边界。274 收藏 -
介绍 Go 1.24+ 的 http.Server.Protocols,给出 HTTP/1、TLS HTTP/2、明文 HTTP/2 的显式配置、验证命令与兼容边界。227 收藏 -
用 fstest.MapFS 构造内存文件系统,把 http.NewFileTransportFS 注册到 file 协议,再用 http.Client 验证静态资源读取、缺失文件 404 和响应体关闭边界。422 收藏 -
介绍 Go http.ResponseController.SetWriteDeadline 的单次响应用法,说明绝对期限、缓冲写入、Flush、ResponseWriter 包装器、ErrNotSupported 与 context、Server.WriteTimeout 的分工。202 收藏 -
讲解 Go multipart 上传文件名的安全处理:原名只作展示,限制请求体,按内容识别类型,生成随机存储名,并用 O_EXCL 防止覆盖已有文件。389 收藏 -
Go multipart.Reader 的 ReadForm 不会让所有文件都永久驻留内存,但 maxMemory 只控制解析预算的一部分。本文用 MaxBytesReader、ReadForm 和 RemoveAll 组合出可控的上传处理方案,并解释 ErrMessageTooLarge、临时文件和部件数量限制。241 收藏 -
用一个可复用的 Go 上传请求构造器讲清 multipart.Writer.SetBoundary 的正确调用顺序、字符与长度限制、Content-Type 同步方式,以及 Close 收尾错误处理。288 收藏 -
Go 的 multipart.Reader 需要保留 quoted-printable 部件时,应使用 NextRawPart。本文对比 NextPart 的透明解码行为,演示安全解析 boundary、保存原始 body,以及按需显式解码的实现边界。413 收藏 -
介绍 Go slog.Group 如何组织 request、order、payment 等嵌套业务字段,并比较 Logger.WithGroup、LogValuer、JSONHandler 与 TextHandler 的适用方式。447 收藏 -
Go 的 log/slog 可以把 HandlerOptions.Level 设置为 slog.LevelVar,在不重建 Logger 的情况下运行时切换最低日志级别。本文给出完整配置示例,说明 Set、Level、Enabled 的边界,以及多 Handler、并发更新和昂贵参数计算时的处理方式。340 收藏 -
用 Go slog.LogValuer 延迟展开业务对象:以轻量包装器配合 GroupValue 控制字段、脱敏和派生计算,并说明自定义 Handler、可变对象与 Resolve 的边界。443 收藏 -
讲清 Go slog.HandlerOptions ReplaceAttr 的统一字段清洗方案,覆盖敏感字段脱敏、内置键重命名、分组路径判断、删除字段与回归测试。128 收藏 -
用 fstest.MapFS 为依赖 fs.FS 的 Go 组件构造内存文件树,覆盖成功、文件缺失、坏数据、子目录和路径边界。370 收藏 -
解释 Go fs.Glob 在 ReadDir 回退和 GlobFS 委托路径中如何处理 I/O 错误,并给出使用 WalkDir 保留底层错误、避免把读取失败误判为无匹配的完整写法。212 收藏 -
用 Go 的 fs.Sub 把 embed.FS 中的 web 子目录变成独立根目录,示范模板和 HTTP 文件服务接入方式,并说明路径、错误处理、符号链接与测试边界。187 收藏