Go语言技术文章
-
通过长度前缀 JSON 示例说明 Go rpc.Server.ServeCodec 如何接入自定义 ServerCodec,并梳理拆帧、并发写响应与关闭连接的边界。435 收藏 -
容器里的 Go 程序需要断点调试时,关键是把调试器参数和应用参数分开,并用关闭优化的二进制启动 headless Delve。本文给出一套可迁移的构建、启动、连接和排障步骤。435 收藏 -
Go 的 http.Client 跨主机重定向后看不到 Authorization,通常是默认的敏感头保护。本文用 CheckRedirect、可信 Origin 和手动跟随策略,给出安全可控的处理方式。435 收藏 -
用 Go net/textproto 读取原始 HTTP 风格请求头,掌握 ReadMIMEHeader、重复字段、续行、键名规范化和输入长度边界。434 收藏 -
Go 1.26 起标准库提供 crypto/hpke,但 KEM、KDF、AEAD 不是可以任意拼接的三个下拉框。本文从兼容性、后量子迁移、硬件环境和应用用途出发,给出 DHKEM、ML-KEM、混合 KEM、HKDF、SHAKE、AES-GCM 与 ChaCha20-Poly1305 的选择思路,并用 Seal/Open 示例固定一套可复查的配置。434 收藏 -
os.OpenFile 的 O_CREATE 只负责文件不存在时创建,不提供独占创建保证。并发生成同一文件时,应使用 O_CREATE|O_EXCL,并处理 os.ErrExist、部分写入和读取时机。433 收藏 -
Go 项目已经生成 vendor,编译却仍访问模块代理,通常不是 vendor 目录失效,而是 -mod 参数、GOFLAGS、go.mod 版本门槛或 vendor/modules.txt 不一致。本文按检查顺序给出定位和修复方法。433 收藏 -
Go http.Server 的优雅关闭超时不是 Server 的固定字段,而是传给 Shutdown 的 context 截止时间。本文用信号、5 秒预算和错误处理示例说明配置方式,以及 WebSocket 等劫持连接的边界。433 收藏 -
Go 的 UnmarshalJSON 适合处理 JSON 表示与 Go 类型之间的边界,不应承载数据库、权限或完整业务校验。本文用别名类型、临时结构和错误分层说明如何限定自定义解码责任。433 收藏 -
解释 Go fs.Sub 为什么拒绝包含 .. 的路径,拆解 ValidPath 规则,并比较 embed.FS、os.DirFS、os.Root 的适用边界与排错方法。433 收藏 -
Go 1.20+ 的 bytes.CutPrefix 可以同时校验并移除二进制帧起始标记。本文给出版本、标志、长度和负载的完整解码写法,比较 HasPrefix、TrimPrefix,并说明多标记分派、空前缀与切片别名边界。433 收藏 -
Go 1.27 引入 encoding/json/v2 后,字段匹配、nil 容器、重复键和非法 UTF-8 的默认语义都更严格。本文用最小示例梳理 v1/v2 差异、兼容选项与切换回归清单。433 收藏 -
Golang · Go问答 | 1星期前 | go · RSA · 密码学 · Go rsa.PSSOptions SaltLength PSSSaltLengthEqualsHash SignPSS
Go 的 PSSOptions.SaltLength 可选自动最大盐长、等于哈希长度或指定正整数。本文给出推荐场景、跨语言互操作、验证端严格度、FIPS 边界和测试矩阵。433 收藏 -
说明 Go exec.Cmd.WaitDelay 的计时边界、管道继承与 StdoutPipe 调用顺序,给出超时和 ErrWaitDelay 的区分处理方案。433 收藏 -
Go regexp 默认采用左侧优先匹配,调用 Longest 后会改为同一起点取更长结果。本文用最小示例比较两种策略,并说明 CompilePOSIX、子匹配和并发配置的边界。432 收藏