Go教程技术文章
-
os.File.ReadAt 返回 io.EOF 不一定代表本次没有数据。关键要先看 n 与 len(buf) 的关系,再决定处理有效字节、接受文件尾部或返回 io.ErrUnexpectedEOF。501 收藏 -
本文用固定长度文件记录和分片场景说明 Go os.File.ReadAt 的偏移参数、短读与 EOF 处理,并给出字节转换和 SectionReader 的使用边界。161 收藏 -
Go fs.Sub 可以把指定目录映射为新的 fs.FS 资源根,让调用方使用简短相对路径;本文说明 ValidPath、SubFS 转发、错误路径以及它与目录安全隔离的边界。161 收藏 -
Go fs.Sub 出错时,先区分路径格式错误和子目录访问错误:用 fs.ValidPath 检查 dir,再用 fs.Stat 确认目标存在且是目录,并通过 PathError 与 errors.Is 定位真正失败的操作。276 收藏 -
filepath.WalkDir 会发现符号链接,但默认不会沿着链接目标递归。本文用 DirEntry 判断链接类型,并说明需要跟随时如何解析目标、限制范围和避免循环扫描。359 收藏 -
filepath.WalkDir 的错误不只来自文件本身。本文按根路径、目录读取和子项回调三类入口,讲清 d 为 nil、SkipDir 与 SkipAll 的处理边界。460 收藏 -
filepath.WalkDir 的回调参数是 fs.DirEntry,不是旧版 Walk 的 fs.FileInfo。本文说明 Type、IsDir 和 Info 的区别,演示如何判断目录、普通文件、特殊文件与符号链接,并处理 Info 失败和遍历错误。401 收藏 -
Go url.JoinPath 适合拼接已经转义的 URL 路径元素,但不会替业务判断用户权限。本文说明如何限制用户值为单一路径段,并处理函数版、方法版、路径清理和 %2F 边界。232 收藏 -
Go url.JoinPath 会自动清理路径中的多余斜杠,但 https:// 的双斜杠是协议分隔符。本文从路径拆分、PathEscape 和 EscapedPath 三个角度排查异常拼接。344 收藏 -
用 Go 的 url.JoinPath 组装 API 路径,讲清路径段转义、查询参数、URL 对象转换、清理规则和常见坑。339 收藏 -
Go 的 http.ServeContent 不会替你决定 Cache-Control;应在调用前设置缓存策略,并配合 modtime 或 ETag 处理条件请求。本文用一个文件接口讲清响应头的职责、设置时机与常见边界。219 收藏 -
Golang · Go教程 | 2星期前 | Go教程 · net/http · range Go http.ServeContent ETag If-None-Match 条件请求 If-Modified-Since
Go http.ServeContent 的条件请求异常,通常要从 io.ReadSeeker、modtime、ETag 和 Range 四个边界排查。本文给出原创 handler 与请求检查方法,区分 304、412、416 以及读取失败。393 收藏 -
用 Go 的 http.ServeContent 处理 Range 请求,关键是传入支持 Seek 的 io.ReadSeeker,并通过 206、Content-Range、Content-Length 和 416 判断区间是否读取正确。312 收藏 -
从 CookieJar 的接口职责、域名路径匹配到 PublicSuffixList 配置,说明 Go HTTP 客户端如何控制会话范围并排查 Cookie 不生效。209 收藏 -
Go http.CookieJar 中 Cookie 已收到却无法发送时,按接收主机、Domain、HostOnly、公共后缀、IP 和目标 URL 逐层排查域匹配,快速区分主机 Cookie 与域 Cookie。293 收藏