Go教程技术文章
-
filepath.EvalSymlinks 会逐层解析路径中的符号链接并清理结果。本文给出最小用法、多层相对链接示例、断链和链接环错误处理,以及把最终路径限制在受信根目录内的检查方法。410 收藏 -
filepath.IsLocal 能用纯词法规则拒绝绝对路径、空路径和会逃出当前目录的路径。本文给出安全拼接函数、跨平台边界、内部点段判断、Windows 保留名说明,以及符号链接场景下使用 os.Root 的加强方案。311 收藏 -
Go 1.23 引入 filepath.Localize,用于把 io/fs 的斜线路径安全转换为当前操作系统路径。本文比较 Localize、ValidPath 与 FromSlash 的边界,给出输入校验、跨平台错误处理和 API 选型示例。292 收藏 -
Go 为 exec.Cmd 设置工作目录后,应先赋值 Cmd.Dir,再调用 Cmd.Environ 并写回 Cmd.Env。本文解释正确顺序、重复环境变量覆盖规则,以及 PWD、os.Getwd、getcwd 在符号链接路径下的差异。142 收藏 -
用一个父子进程示例说明 Go os/exec 的 ExtraFiles 如何把文件传到固定的 3+i 描述符,覆盖子进程读取、关闭时机、EOF 排查与 Windows 不支持边界。287 收藏 -
讲清 Go exec.CommandContext 如何在启动前替换 Cmd.Cancel,用协作式信号代替默认 Kill,并结合 WaitDelay、os.ErrProcessDone 与 ErrWaitDelay 处理退出边界。455 收藏 -
Go os/exec 的 WaitDelay 不只是命令超时参数,它还限制子进程退出后遗留 I/O 管道的收尾等待。本文用 CommandContext、ErrWaitDelay 和输出管道示例说明配置方式与边界。408 收藏 -
Go url.URL 的 Opaque 用于表示 scheme:opaque 形式的非层级 URI。本文对比 mailto、urn、data 与普通 HTTP 地址,说明字段读取、直接构造和误用边界。435 收藏 -
url.ParseQuery 会把重复键保存为字符串切片;未编码分号会让对应片段无效,但有效参数仍可能保留。本文讲清读取方式、错误处理与 HTTP 接口边界。455 收藏 -
讲清 Go net/url 中 Path、RawPath 与 EscapedPath 的关系,演示如何保留合法编码斜杠,以及改写路径后如何避免 RawPath 失配。153 收藏 -
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 收藏